我正在运行一个 Heroku 应用程序,其中有一个后台工作人员使用 Kue 处理作业。因为 heroku 终止并重新启动任何需要超过 30 秒的请求,所以我最终将响应发送回客户端jobs.create()
(在完成之前)。
由于其中一些工作需要几分钟才能完成,从客户那里检查进度的最佳方法是什么?
到目前为止,我能看到的最佳解决方案是将作业 ID 发送回客户端,然后每 x 秒检查一次作业进度:
var job = jobs.create(type, data).save(function () {
res.send(200, job.id);
});
...
kue.Job.get(id, function (err, job) {
res.send({ progress: job._progress, state: job._state })
}