如何在nodejs中为一个时间范围调度cron作业



我正试图在上午9点到晚上9点之间每15分钟安排一次Cron作业。我可以每15分钟安排一次,但不能安排一段时间。以下是的代码片段

const CronJob = require('cron').CronJob
const splunkNode = require('./splunk_node')
let job = new CronJob("*/15 08-21 * * * 1-5", function(){
console.log('ran at ', new Date())
// CRON JOB()
},function(){
console.log('Job stopped')
},true,'America/Los_Angeles')
job.start()

指定范围的语法是否必须括在方括号[]之间?

一个简单的解决方法是调度一个在一定时间后调用自己的函数

function callCronJob (){
const job = new CronJob("*/15 08-21 * * * 1-5", function(){
// if time range we are in doesn't fall between 9AM and 9PM cancel this job and call // this function again with it's 9AM 
// next part is pseduocode cause I am lazy to write actual code
if ( 9am >timeRange > 9pm ){
job.cancel() 
new cronJob(timeRange+ 12 hours , ()=>{
callCronJob();
});
return;
}
// CRON JOB()
},function(){
console.log('Job stopped')
},true,'America/Los_Angeles')
job.start()
}

最新更新