#node.js #cron
#node.js #cron
Вопрос:
Я пытаюсь запланировать задание Cron с 9 утра до 9 вечера каждые 15 минут. Я могу запланировать его на каждые 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()
Должен ли синтаксис для указания диапазона быть заключен в квадратные скобки []?
Комментарии:
1. Вы можете использовать npmjs.com/package/cron_expression_builder это читаемый человеком cron bulder
Ответ №1:
Обходной путь lil — запланировать функцию, которая вызывает себя через определенное время
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()
}