我正在尝试在每天的特定时间(东部时间早上7点)运行节点任务/功能,而不考虑夏令时。我已经尝试过基于cron的软件包,但是cron似乎没有考虑到它。运行应用程序的服务器是GMT / UTC,因此也需要考虑这一点。这是我目前的代码:
const schedule = require('node-schedule');
...
const j = schedule.scheduleJob('0 12 * * *', function(){
bot.channels.get(getDefaultChannel().id).send("Hello! Your daily fact for today is", { embed: generateEmbed(getRandomFact()) });
});
这很好用,但由于我们只是提前一小时,所以消息显示在早上8点而不是早上7点。
答案 0 :(得分:1)
这是一个棘手的问题,我已经通过几种方式来实现这一点,我认为Cron库工作得最好(https://www.npmjs.com/package/cron)。您可以安排在美国/东部时区早上7点开始工作。
"use strict";
var cron = require('cron');
var job1 = new cron.CronJob({
cronTime: '0 7 * * *',
onTick: function() {
bot.channels.get(getDefaultChannel().id).send("Hello! Your daily fact for today is", { embed: generateEmbed(getRandomFact()) });
},
start: true,
timeZone: 'US/Eastern'
});