Node.js了解如何重新启动失败的作业
Node.js Kue how to restart failed jobs
我在node.js应用程序中使用kue进行延迟作业。
我有一些问题,弄清楚如何使用kue的API重新启动作业,而不必使用redis命令手动将作业的id从失败作业列表移动到非活动作业列表。
是否可以使用kue?
我不想设置一个固定的重试次数-我只想重试特定的作业。
对于维护良好的替代kue的建议也很欢迎。
我不知道这是否有效,但您可以尝试将作业状态重置为活动状态,并再次保存作业:
job.on('failed', function() {
job.state('inactive').save();
编辑:将状态设置为inactive将正确地重新队列任务
这也可以使用队列级事件来完成。
queue.on('job failed', function(id, result) {
kue.Job.get(id, function(err, job) {
if (!err && shouldRetry(job))
job.state('inactive').save();
});
});
因此,您不需要对希望重试的每个作业都执行。相反,您可以在队列级别事件中过滤它。
参见官方文档
默认情况下,作业只有一次尝试,也就是说,当它们失败时,它们被标记为失败,并一直保持这种状态,直到你介入。但是,Kue允许您指定这一点,这对作业很重要例如传输电子邮件,一旦失败,通常会重试没有问题。为此,调用.attempts()方法,并提供一个数字。
queue.create('email', {
title: 'welcome email for tj'
, to: 'tj@learnboost.com'
, template: 'welcome-email'
}).priority('high').attempts(5).save();
reference: failure attempts
相关文章:
- cron作业与Javascript计时事件
- 当json解析空响应时,Whatwg-Fetch失败,我该如何防止它
- 与运行长作业(javascript,node.js)的第三方API同步的最佳实践
- JsFiddle在分叉后描述失败
- MobileFirst:在客户端运行计时器作业-最佳选项
- 为什么不'当单元测试出现解析错误时,我的因果报应测试会失败
- 当一些承诺失败时,如何继续使用$q.all()
- 失败:等待Protractor与页面同步时出错:“”;在窗口上找不到角度”;
- 在Jquery中单击传播失败
- 网页上失败的javascript会导致所有其他脚本失败
- 带有对象解析的响应javascript ajax失败
- 一台特定计算机的Ajax请求数据未定义/失败
- Nodejs服务器:加载资源失败:服务器的响应状态为404(未找到)
- jQuery.getJSON失败,语法错误
- ng disabled在放入多个表达式时失败
- Jasmine单元测试在监视服务方法时失败
- jQuery分页下一页和上一页按钮在点击零或超过最后一页后失败
- 在iframe的情况下,jQuery html()将失败
- Node.js了解如何重新启动失败的作业
- 解析,saveAll失败后两个httpRequests(云代码作业)