node js - 如何修改议程中的现有作业
node js - how to modify an existing job in agenda
我正在使用节点 js 和 mongoDb 创建后端应用程序,并且我正在使用 agenda for job scheduling. I have offerModel in my application to add, update or delete offers. So, for updating the expired offers according to their validity, i am using job scheduling library agenda。现在如果我要增加报价的有效性,我是否需要删除相应的工作并重新定义它,或者有没有办法更新现有的工作?
据我所知,您无法更新条目。您需要取消并定义条目,例如:
agenda.cancel({name: jobName}, function(err, numRemoved) {
var jobName = 'job' + new Date().getTime();
agenda.define(jobName, doSomething);
});
根据最新更新的文档,我们可以使用 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
希望对您有所帮助。
我正在使用节点 js 和 mongoDb 创建后端应用程序,并且我正在使用 agenda for job scheduling. I have offerModel in my application to add, update or delete offers. So, for updating the expired offers according to their validity, i am using job scheduling library agenda。现在如果我要增加报价的有效性,我是否需要删除相应的工作并重新定义它,或者有没有办法更新现有的工作?
据我所知,您无法更新条目。您需要取消并定义条目,例如:
agenda.cancel({name: jobName}, function(err, numRemoved) {
var jobName = 'job' + new Date().getTime();
agenda.define(jobName, doSomething);
});
根据最新更新的文档,我们可以使用 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
希望对您有所帮助。