节点计划未按时执行
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);
请检查时区。
我建议您使用 cron 而不是 node-schedule。它给了你更多的控制权。
- 您可以在不更改代码(SetTime)的情况下更改cron时间
- 这个库有很多方法,比如 fireOnTick addCallback 等
- 可以动态启动和停止作业。
- 您可以使用 onTick 和 onComplete 函数
https://www.npmjs.com/package/cron
我想创建一个每天在 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);
请检查时区。
我建议您使用 cron 而不是 node-schedule。它给了你更多的控制权。
- 您可以在不更改代码(SetTime)的情况下更改cron时间
- 这个库有很多方法,比如 fireOnTick addCallback 等
- 可以动态启动和停止作业。
- 您可以使用 onTick 和 onComplete 函数 https://www.npmjs.com/package/cron