javascript - 每分钟运行功能并发送消息
问题描述
我有这个功能:
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% 确定,我不知道为什么。有人可以帮忙吗?
解决方案
通过这样做想通了:
var getTexts = new cronJob( '45 * * * * *', function(){
它所做的是运行 cronjob every 45 seconds
,然后它将在指定的时间发送文本消息。工作完美,到目前为止...
推荐阅读
- bash - 如何将 shell 完成推迟到 bash 和 zsh 中的另一个命令?
- python - 如何导入依赖 psycopg2 游标对象的辅助函数?
- sql - 如何编写 case 语句以返回重复记录?
- c - 野牛递归在链表中表现异常
- dart - 在 PageView 动画期间对象为“null”,在动画结束时工作
- python - 除了使用多个临时文件之外,还有更好的方法来临时存储文本文件的大量输出数据(放在列和行中)吗?
- python - 如何使用 Pandas 在两个不同的单词之间填充?
- java - 从 Intelli-J 构建 jar 不会执行
- python - 第一次迭代后我的模型精度保持不变(0.024),我该怎么办?
- android - 如何在片段的recyclerview中搜索arraylist数据