0

我正在使用node-cron在我的 express 后端进行调度,这是示例。我在index.js中设置了我的调度配置,并且我已经开发了将由 cron 在training.js中执行的功能

index.js

const training = require('./training');

const DAILY = 'DAILY';
const HOURLY = 'HOURLY';

function getCronSchedule(when){
    switch (when) {
        case DAILY : return "55 22 * * *";
        case HOURLY : return "10 * * * *";
    }
}
function initJob()
{
    training.initJob(getCronSchedule(HOURLY));
    training.initJob(getCronSchedule(DAILY));
}

module.exports={
    initJob
}

培训.js

function initJob(when)
{
    console.log('This is daily scheduling');
    console.log('This is hourly scheduling');
}

module.exports={
    initJob
}

目前,该:

This is daily scheduling
This is hourly scheduling

将每天打印两次,因为它按每日和每小时调度打印。

我需要的是他们每个人每天打印一次。

这是打印在每日 cron 上的每日日程安排,并且,

这是在每小时 cron 上打印的每小时调度。

我怎样才能做到?我不知道如何制定条件,因为我从 param 得到的只是 cron 计划。

4

2 回答 2

0

从 node-cron 示例中,您的代码应该是这样的:

const cron = require('node-cron');

cron.schedule('55 22 * * *', () => {
  console.log('This is daily scheduling');
});

cron.schedule('55 22 * * *', () => {
  console.log('This is hourly scheduling');
});
于 2019-10-18T06:49:26.077 回答
0

试试下面的代码,希望这会有所帮助:

index.js

const training = require('./training');

const DAILY = 'DAILY';
const HOURLY = 'HOURLY';

function getCronSchedule(when){
    switch (when) {
        case DAILY : return "2 * * * *";
        case HOURLY : return "* * * * *";
    }
}
function initJob()
{
    training.initJob(getCronSchedule(HOURLY),HOURLY);
    training.initJob(getCronSchedule(DAILY),DAILY);
}

module.exports={
    initJob
}

initJob()

培训.js

var cron = require('node-cron');
const DAILY = 'DAILY';
const HOURLY = 'HOURLY';

function initJob(when, name)
{   
  switch(name){
    case DAILY : cron.schedule(when, () => {
    console.log('This is daily scheduling');
  });
    case HOURLY : cron.schedule(when, () => {
    console.log('This is hourly scheduling');
  });

  }

}

module.exports={
    initJob
}

希望这会有所帮助。

于 2019-10-18T07:00:50.277 回答