没有setInterval()的计划消息

时间:2019-05-07 17:26:11

标签: javascript discord.js

我想安排一些事情,例如使用我的不和谐机器人发送消息。
例如:我希望该机器人每天早上8点发送“早安”或宣布一些消息。

我的问题是:我不能使用setInterval()之类的东西每24小时执行一次,因为如果机器人下线或必须重新启动,它将重置或延迟时间间隔。

问题:如何在特定时间执行某些操作而不必担心机器人有时会离线?

1 个答案:

答案 0 :(得分:2)

您可以使用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模式here的更多信息。