Как запланировать задание cron в nodejs на определенный временной диапазон

#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()
}