node js - 如何修改议程中的现有作业

时间:2018-02-19 09:50:06

标签: node.js agenda

我正在使用节点js和mongoDb创建一个后端应用程序,我正在使用agenda进行作业调度。我在我的应用程序中提供了要添加,更新或删除优惠的模型。因此,为了根据其有效性更新过期的商品,我使用的是作业调度库agenda。现在,如果我提高报价的有效性,我是否需要删除相应的作业并再次定义它,或者有没有办法更新现有作业?

2 个答案:

答案 0 :(得分:1)

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

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

    agenda.define(jobName, doSomething);
});

答案 1 :(得分:0)

根据最新更新的文档,我们可以使用agenda.unique API来更新现有作业。例如-

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

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

参考-Agenda API Docs

我希望这会有所帮助。