调度消息而不的setInterval()(Scheduled messages without se

2019-10-30 01:48发布

我想安排像我的不和谐机器人发送消息的一些事情。
例如:我想机器人天天送“早安”在上午8点或宣布一些事情。

我的问题是:我不能用类似setInterval()因为如果机器人脱机或已重新启动,它会重置或延迟的时间间隔来执行每24小时。

问:我如何执行在特定时间点的东西,而不必担心机器人有时是离线?

Answer 1:

您可以使用cron包:您计划在特定小时运行,每天的作业(时间将系统时钟读取,你必须自己弄清楚的时区)。

这里的每一天发送上午8:00消息的一个例子。

const cron = require('cron');

const channel; // Let's say this is the channel where you want to send it.
const job = new cron.CronJob('0 0 8 * * *', () => {
  channel.send("It's 8:00 am.");
});

关于0 0 8 * * *模式:它的格式是second minute hour month-day month week-day
你可以找到更多关于cron的模式在这里 。



文章来源: Scheduled messages without setInterval()