为什么这不起作用?
var tournRule = new schedule.RecurrenceRule();
tournRule.dayOfWeek = 3;
tournRule.hour = 03;
tournRule.minute = 08;
tournRule.tz = 'Central Time';
我尝试在**中输入这么多不同的东西.tz =' CDT'部分但无论如何,它都不会触发。我从中得不到任何错误。
蒂亚!
修改
我想我也应该加上这个:
var tr = schedule.scheduleJob(tournRule, function() {
console.log("Im online. Im online");
})
编辑2
我想将时区指定为我正在开发机器人的ESL团队,以便为美国中部玩家和英国玩家制定不同的时间表。
答案 0 :(得分:1)
我建议尝试使用cron包:https://www.npmjs.com/package/cron。
我发现这与时区很好地配合,例如:
const CronJob = require('cron').CronJob;
const job = new CronJob({
// Run at 05:00 Central time, only on weekdays
cronTime: '00 00 05 * * 1-5',
onTick: function() {
// Run whatever you like here..
console.log('CronJob ran!!');
},
start: true,
timeZone: 'US/Central'
});
请点击此处查看时区列表: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
答案 1 :(得分:0)
如果指定了时区,则必须指定职位名称以及第一个参数。
要触发事件,您必须指定一个作业名称作为第一个参数:
schedule.scheduleJob('job name', '0 14 * * *', 'Asia/Shanghai', () => {
console.log('Will execute on 14:00:00 GMT+8:00 (CST) everyday');
});
*到目前为止,该项目的npm页面对job name
要求一无所知。它仅记录在GitHub readme file上。
答案 2 :(得分:-1)
根据https://www.npmjs.com/package/node-schedule-tz您不必指定时区,这是他们网站上的工作示例:
var rule = new schedule.RecurrenceRule();
rule.minute = 42;
var j = schedule.scheduleJob(rule, function(){
console.log('The answer to life, the universe, and everything!');
});
以上示例将在每小时触发,结束于:42,如7:42,8:42,9:42等,确保您了解类似cron的事情是如何工作的