gpt4 book ai didi

node.js - “工作完成”事件未在 Kue 中触发

转载 作者:IT王子 更新时间:2023-10-29 06:03:27 24 4
gpt4 key购买 nike

我不知道我做错了什么,也许有人可以指出来。我想弄清楚为什么我的“作业完成”事件没有触发。

var kue = require('kue'),           
jobs = kue.createQueue();
var util= require('util');
var job = jobs.create('test', util.puts('123')).on('complete', function(){
console.log("Job complete");
}).on('failed', function(){
console.log("Job failed");
}).on('progress', function(progress){
process.stdout.write('\r job #' + job.id + ' ' + progress + '% complete');
});

现在,当我在 Node 上运行它时,它会打印 123,但不会显示作业完成。

最佳答案

这个问题很老了,但是对于那些即使放置 save() 也遇到这个问题的人,互联网上仍然没有解决方案......我已经为自己制定了三个步骤解决问题:

<强>1。确保在为作业设置处理程序后调用 save() 方法。

var job = queue.create('some process', some_args);

job.on('complete', function(result) {

console.log('complete');

}).on('failed', function(result) {

console.log('failed');

}).removeOnComplete(true).save();

附言在完成时删除作业也是一个好习惯,否则你会填满 Redis 内存。

<强>2。确保您的处理程序正常。
我自己试验了事件处理程序,试图向它们传递几个参数。我的“失败”事件处理程序接受了错误代码和我通过 done(err, data) 方法传递的其他数据。这是不对的。因此,请检查文档和官方 Kue 示例以确保您的代码没有错误。

<强>3。如果没有任何帮助,请在终端中执行 redis-cli flushall
小心!这将删除您的 redis 中的所有内容。我本人是其中的菜鸟,因此它仅用作 Kue 在我系统上的依赖项。我不确定,但我想这会破坏你可能在 redis 中使用的数据。虽然它以某种方式解决了问题,但没有其他帮助。

请大家随意提出任何其他使用 redis 修复 Kue 的安全方法。

附言还没有检查,但我想,更改作业的进程名称(在我的示例中是“某个进程”)也可以解决该问题。

关于node.js - “工作完成”事件未在 Kue 中触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14434829/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com