gpt4 book ai didi

node.js - 客户的 Kue 作业进度

转载 作者:可可西里 更新时间:2023-11-01 11:36:11 24 4
gpt4 key购买 nike

我正在运行一个 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 })
}

最佳答案

任何时候你的工作可能需要 > 30 秒才能完成,你应该轮询而不是依赖一个非常长的请求来避免在某处被取消或中断。轮询对于刷新的客户也更具弹性(如果您的工作需要很长时间,则可能):

https://devcenter.heroku.com/articles/asynchronous-web-worker-model-using-rabbitmq-in-node#4-poll-for-changes

this.pollInterval = setInterval(poll.bind(this), 2000);

关于node.js - 客户的 Kue 作业进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33373978/

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