gpt4 book ai didi

javascript - 如何删除 Node 时间表中的所有时间表?

转载 作者:搜寻专家 更新时间:2023-11-01 00:12:36 24 4
gpt4 key购买 nike

我从 docs 看到例如,您可以按名称一一删除 ...

var schedule = require('node-schedule');

// sample announcement

var rule = new schedule.RecurrenceRule();
rule.dayOfWeek = [1, 2, 3, 4, 5];
rule.minute = 50;
rule.hour = 12;

var message = schedule.scheduleJob("AnnouncementOne", rule, function() {
// make my announcement
})

AnnouncementOne.cancel();

但我想要代码来获取所有计划的作业,然后遍历它们以删除每一个。我认为以下获得所有工作......

var jobList = schedule.scheduledJobs;

哪个输出到控制台...

{ 'AnnouncementOne':
Job {
job: [Function],
callback: false,
name: 'AnnouncementOne',
trackInvocation: [Function],
stopTrackingInvocation: [Function],
triggeredJobs: [Function],
setTriggeredJobs: [Function],
cancel: [Function],
cancelNext: [Function],
reschedule: [Function],
nextInvocation: [Function],
pendingInvocations: [Function] },
'AnnouncementTwo':
Job {
job: [Function],
callback: false,
name: 'AnnouncementTwo',
trackInvocation: [Function],
stopTrackingInvocation: [Function],
triggeredJobs: [Function],
setTriggeredJobs: [Function],
cancel: [Function],
cancelNext: [Function],
reschedule: [Function],
nextInvocation: [Function],
pendingInvocations: [Function] } }

我如何循环遍历 jobList 以删除每个作业?

替代代码:

var jobList = schedule.scheduledJobs;

for(jobName in jobList){
var job = 'jobList.' + jobName;
eval(job+'.cancel()');
}

最佳答案

最好远离eval

const schedule = require('node-schedule');
const _ = require('lodash');
const j = schedule.scheduleJob('SomeDirtyWork', '42 * * * *', () => {
// Something is going on
});

const jobNames = _.keys(schedule.scheduledJobs);
for(let name of jobNames) schedule.cancelJob(name);

关于javascript - 如何删除 Node 时间表中的所有时间表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39925701/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com