【问题标题】:Running function every minute and sending message每分钟运行功能并发送消息
【发布时间】:2021-10-31 18:16:09
【问题描述】:

我有这个功能:

    var getTexts = new cronJob( '*/1 * * * *', 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")
            }

            
            for (var i = 0; i < rows.length; i++) {
                // arrayOfNumbers.push(rows[i].NAME)
                // arrayOfNumbers.push(rows[i].PHONE_NUMBER)
                // arrayOfNumbers.push(rows[i].HOUR)
                // arrayOfNumbers.push(rows[i].MINUTE)
                var minute = rows[i].MINUTE;
                var hour = rows[i].HOUR;
                console.log(rows[i])
                var stringg = rows[i]["MINUTE"] + " " + rows[i]["HOUR"] + " * " + "* " + "*"


                var textJob = new cronJob( stringg, function(){
                    client.messages.create( { to:'xxx', from:'yyy', body:'Hello! Hope you’re having a good day!' }, function( err, data ) {});
                  },  null, true);
            }

            conn.close(function() {
            });
        });
    });
}, null, true)

它应该做的是每 1 分钟运行一次 cronjob,它会从我的 clients 表中获取所有结果。然后我遍历每个结果,如果它是当前时间并且它计算数据库中的时间,那么它会发送消息。但是,它在一天中的每一分钟运行第一个 cronjob,然后假设我的 etxt 应该在 9:15 到达我们的位置,然后它不能足够快地到达那里,因为它仍在经历第一个 cronjob 迭代.这是我的猜测,但我不是 100% 确定,我不知道为什么。有人可以帮忙吗?

【问题讨论】:

    标签: javascript node.js cron twilio


    【解决方案1】:

    通过这样做弄清楚了:

    var getTexts = new cronJob( '45 * * * * *', function(){
    

    它的作用是每隔45 seconds 运行一次cronjob,然后它将在指定的时间发送文本消息。工作完美,到目前为止...

    【讨论】:

      猜你喜欢
      • 2019-10-25
      • 2017-10-17
      • 2020-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-27
      • 2019-01-18
      相关资源
      最近更新 更多