2

我正在使用节点 js 和 mongoDb 创建一个后端应用程序,并且我正在使用议程进行作业调度。我的应用程序中有 offerModel 来添加、更新或删除优惠。因此,为了根据有效期更新过期的报价,我正在使用作业调度库议程。现在如果我要增加报价的有效性,我是否需要删除相应的工作并重新定义它,或者有没有办法更新现有工作?

4

2 回答 2

2

AFAIK,您无法更新条目。您需要取消并定义如下条目:

agenda.cancel({name: jobName}, function(err, numRemoved) {
    var jobName = 'job' + new Date().getTime();

    agenda.define(jobName, doSomething);
});
于 2018-02-19T10:29:05.927 回答
2

根据最新更新的文档,我们可以使用agenda.uniqueAPI 来更新现有工作。举个例子 -

agenda
    .create("Job_Name", data_to_be_updated)
    .repeatEvery(schedule)
    .unique({ "data.unique_id": data_to_be_updated.unique_id })
    .save();

上面的示例创建了一个重复性工作,它将更新data同一工作的。我repeatEvery在示例中包含了 API,因为在大多数情况下,重复作业应该被更新并保持唯一。

参考 -议程 API 文档

我希望这有帮助。

于 2019-01-08T13:34:31.780 回答