1

我有这个:

cronJob = require('cron').CronJob;

var getTexts = new cronJob( '13 12 * * *', function(){
    var viewConformationEmails = "select * from clients";
    ibmdb.open(ibmdbconn, function(err, conn) {
        if (err) return console.log(err);
        conn.query(viewConformationEmails, function(err, rows) {
            if (err) {
                console.log(err);
            } else if (!err) {
                console.log("Success")
            }
    
            var arrayOfNumbers = []
            for (var i = 0; i < rows.length; i++) {
                arrayOfNumbers.push(rows[i].PHONE_NUMBER)
            }
            console.log("arrayOfNumbers: ", arrayOfNumbers)
    
            conn.close(function() {
            });
        });
    });
})

我在这里所做的是cronjob为今天下午 12:13设置一个,这已经过去了。在那个 cronjob 函数中,我访问我的数据库并获取电话号码,将它们放入一个数组中,然后尝试记录该数组。

然而,在下午 12 点 13 分,它没有通过。我也试过这个twillo,它通过了。但我无法弄清楚我做错了什么,或者我什至可以做我正在寻找的事情。这可能吗

4

1 回答 1

0

根据cron 文档,范围参数是:

秒:0-59
分钟:0-59
小时:0-23
月份:1-31
月份:0-11(1 月至 12 月)
星期:0-6(周日至周六)

所以,如果你想在下午 12:13 运行调度你的任务,你需要这样设置你的参数:

const CronJob = require('cron').CronJob;

console.log('Before job instantiation');
const job = new CronJob('* 13 12 * * *', function() {
    const now = new Date();
    console.log('Task runs at', now);
});
console.log('After job instantiation');
job.start();

注意:在不指定Seconds参数的情况下设置此时间,将在内部的 12:13pm ~ 12:14pm 之间每秒运行一次任务。因此,如果您想在特定时间运行一次任务,请定义Seconds参数:

const job = new CronJob('0 13 12 * * *', function() {
  // rest of the codes ...
}
于 2021-10-28T17:16:30.370 回答