0

我正在构建一个服务来使用议程作业/队列生成 PDF ,并希望更新作业的属性,即statusprogress当处理程序执行代码以生成 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()

现在随着作业执行的进行,我想更新stateandprogress但没有任何 API 可以让我这样做。

我尝试按照这里.unique的建议使用 API,但问题是:

  • 我无法更新特定data属性,即status这样做会删除所有其他属性,即unique_idprogress

  • 我不能使用我在 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();
    

如果其他人遇到这种情况或做过类似的事情,请指出我正确的方向。谢谢你。

4

0 回答 0