节点计划未按时执行

node-schedule not executing on time

我想创建一个每天在 11:11 发送推文的机器人。但是,当我输入命令节点 bot.js 时,我只写了 运行 一次的代码,之后就不会 运行 了。我没有创建对象作业,因为文档说我可以 运行 scheduleJob() 而无需手动创建对象。

var schedule= require('node-schedule');

var writeTweet = function() {
    Twitter.post('statuses/update', {
        status: messages[messageLocation]
    }, function(err, data, response) {
        console.log(data)
    });
    messageLocation += 1;
}
 
var j=schedule.scheduleJob('11 11 * * *',writeTweet());```

您似乎在 scheduleJob

中调用函数 writeTweet()

因为你只需要传递一个函数。

像这样:

var j=schedule.scheduleJob('11 11 * * *',writeTweet);

看看这个:https://www.npmjs.com/package/node-schedule

请检查时区。

我建议您使用 cron 而不是 node-schedule。它给了你更多的控制权。

  1. 您可以在不更改代码(SetTime)的情况下更改cron时间
  2. 这个库有很多方法,比如 fireOnTick addCallback 等
  3. 可以动态启动和停止作业。
  4. 您可以使用 onTick 和 onComplete 函数 https://www.npmjs.com/package/cron