节点 cron 执行特定功能



我正在使用node-cron在我的快速后端进行调度,这是一个例子。 我在index.js中设置了调度配置,并开发了将在训练中由 cron 执行的函数.js

索引.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 上。

我该怎么做?我不知道如何制作条件,因为我从参数中得到的只是 cron 时间表。

从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');
});

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

索引.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
}

希望这会有所帮助。

最新更新