Javascript 我可以用kue/node.js保存数据吗
我目前正在使用kue/node.js 创建并保存作业后,数据将保存在本地redis服务器中Javascript 我可以用kue/node.js保存数据吗,javascript,node.js,database,persistence,kue,Javascript,Node.js,Database,Persistence,Kue,我目前正在使用kue/node.js 创建并保存作业后,数据将保存在本地redis服务器中 var job = queue.create('new_job', { title: 'welcome email for tj' , to: 'tj@learnboost.com' , template: 'welcome-email' }).save( function(err){ if( !err ) console.lo
var job = queue.create('new_job', {
title: 'welcome email for tj'
, to: 'tj@learnboost.com'
, template: 'welcome-email'
}).save( function(err){
if( !err ) console.log( job.id );
});
Redis Cli
127.0.0.1:6379> keys *
1) "q:job:12"
2) "q:jobs:inactive"
3) "q:stats:work-time"
4) "q:ids"
5) "q:job:11"
6) "q:job:7"
7) "q:search:object:13"
8) "q:search:word:TTL"
9) "q:search:object:2"
10) "q:jobs:new_job:inactive"
..........
现在,在我重新启动机器并再次检查之后
127.0.0.1:6379> keys *
(empty list or set)
所以它是空的
这是显而易见的,但我想保留数据,我检查了kue文档,但找不到任何东西
有没有办法做到这一点
提前感谢。我认为可以通过您的redis服务器配置来处理持久性。在您的中,您有一个注释了
快照的部分,您应该浏览该部分。有许多方法可以配置持久性,但我认为最适合您的用例是AOF,在AOF中,对redis服务器的所有传入写入都记录到一个文件中。请阅读如何配置redis以实现持久性。通过将以下行添加到conf文件中,可以启用AOF持久性:
appendonly true
实际上,kue不会删除作业,除非您手动删除作业
以下是另存为test.js的示例:
const kue = require('kue')
const queue = kue.createQueue()
queue.process('echo', (job, done) => {
console.log(job.data.message)
done();
})
const job = queue.create('echo', {
message: 'hello world'
}).save((err) => {
if (err) {
console.log(job.id)
}
})
当我通过
node test.js
我在redis中检查队列信息,redis cli键“q*”
的结果如下:
然后重新启动节点test.js
,`redis cli keys“q*”的结果如下:
实际上,这里添加了一个新任务:q:job:2
kue
将在您调用job.remove
时删除作业。因此,您应该检查redis服务器的日志文件,看看发生了什么。非常感谢。我将对此进行调查:)