【发布时间】:2019-08-30 12:14:22
【问题描述】:
我正在使用 node-schedule npm 包来安排作业。我参考下面的链接来设置不同工作的工作名称/ID, Cancel node-schedule event after it has been set
当我直接使用 cron 表达式来安排作业时效果很好。但是当我使用 RecurrenceRule() 来安排工作时它不起作用。
请帮我解决这个问题。
工作代码sn-p for,用job id和cron表达式调度job,
// code that works
function test(fn)
{
let rule = '* * * * *'
let jobId = "my_event_1"
schedule.scheduleJob(jobId,rule,()=>{fn()})
}
test(print)
打印功能,
function print()
{
console.log("HELLO",new Date())
}
不适用于重复规则的代码,
// Recurrence rule used
function my_scheduleJob(id,tz,cron_expression,function_name)
{
var mxTimezones = "Asia/Kolkata";
var interval = parser.parseExpression(cron_expression, options);
var cronDate = interval.next();
var rule = new schedule.RecurrenceRule();
rule.second = cronDate.getSeconds();
rule.minute = cronDate.getMinutes();
rule.tz = mxTimezones; // You can specify a timezone!
schedule.scheduleJob(rule,()=>{
console.log("Scheduler test-------")
function_name(rule.tz)
})
}
my_scheduleJob("job1", "Asia/Kolkata", "* * * * *", print)
我使用循环规则的原因是设置时区。是否可以使用重复规则和作业 ID 来安排作业?
提前致谢!!!
【问题讨论】:
-
jobId为你工作了吗? -
嗨@bubble-cord,是的,经过一些修改后它工作了。现在我在下面发布了我的解决方案。
-
嗨@Shamil。感谢您的回复。我尝试使用 JobId,但似乎它现在已从当前版本的节点调度程序中删除?
-
嗨@bubble-cord,刚才我注意到,正如你提到的,jobid 似乎已在最新版本中删除。一年前我厌倦了解决方案。
标签: node.js node-schedule