Kueでジョブを処理するバックグラウンドワーカーでherokuアプリを実行しています。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 })
}