我正在构建一个服务来使用议程作业/队列生成 PDF ,并希望更新作业的属性,即status
,progress
当处理程序执行代码以生成 PDF 时。
例子:
职位定义:
agenda.define('generatePdf', async (job) => {
const { unique_id, status, progress } = job.attrs.data;
...
await functionThatGeneratesThePDF(...);
...
});
启动议程作业处理器:
agenda.start()
创建/调度作业:
let job = agenda.create('generatePdf', { status: "CREATED", progress: 0, unique_id: <unique_id> });
job.save()
现在随着作业执行的进行,我想更新state
andprogress
但没有任何 API 可以让我这样做。
我尝试按照这里.unique
的建议使用 API,但问题是:
我无法更新特定
data
属性,即status
这样做会删除所有其他属性,即unique_id
,progress
我不能使用我在 unique 中指定的属性作为作业的数据属性
agenda .create(job.attrs.name, {status : "COMPLETED"}) <---- can not use unique_id as the data. .unique({ "data.unique_id": job.attrs.data.unique_id }) .save();
如果其他人遇到这种情况或做过类似的事情,请指出我正确的方向。谢谢你。