没有 setInterval() 的预定消息
Scheduled messages without setInterval()
我想安排一些事情,比如用我的 discord 机器人发送消息。
例如:我希望机器人每天早上 8 点发送 "Good Morning" 或宣布一些事情。
我的问题是:我不能使用 setInterval()
这样的东西每 24 小时执行一次,因为如果机器人离线或必须重新启动,它会重置或延迟间隔。
问题:如何在特定时间点执行某些操作而不必担心机器人有时会离线?
你可以使用 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.
我想安排一些事情,比如用我的 discord 机器人发送消息。
例如:我希望机器人每天早上 8 点发送 "Good Morning" 或宣布一些事情。
我的问题是:我不能使用 setInterval()
这样的东西每 24 小时执行一次,因为如果机器人离线或必须重新启动,它会重置或延迟间隔。
问题:如何在特定时间点执行某些操作而不必担心机器人有时会离线?
你可以使用 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.