【问题标题】:cronjob to go to database node.jscronjob 去数据库 node.js
【发布时间】:2021-12-13 20:44:40
【问题描述】:

我有这个:

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() {
            });
        });
    });
})

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

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

【问题讨论】:

  • 感谢您的关注。

标签: javascript node.js cron


【解决方案1】:

根据crondocumentation,范围参数为:

秒数: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 ...
}

【讨论】:

    猜你喜欢
    • 2011-06-30
    • 2020-12-11
    • 1970-01-01
    • 2020-01-18
    • 2010-11-18
    • 2015-02-15
    • 2011-02-14
    • 2012-08-18
    • 2020-03-03
    相关资源
    最近更新 更多