【问题标题】:node-schedule-tz : Issue with timezonenode-schedule-tz:时区问题
【发布时间】:2018-11-15 20:22:56
【问题描述】:

为什么这不起作用?

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 团队针对美国中部玩家和英国玩家有不同的时间表。

【问题讨论】:

  • 看看我的回答@BretHawker

标签: javascript node.js scheduled-tasks


【解决方案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

【讨论】:

    【解决方案2】:

    来自project's readme on GitHub

    如果指定了时区,则必须指定作业名称以及第一个参数。

    要触发事件,您必须指定作业名称作为第一个参数:

    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

    【讨论】:

      【解决方案3】:

      根据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 的工作方式

      【讨论】:

      • 让我编辑我的问题,以便您编辑答案。
      • 所以可能是您输入的时区名称不正确或服务器上的时间无法正常工作,因为您的代码在技术上是正确的,从我的角度来看,唯一可能出错的是时区名称或你的服务器出了点问题
      猜你喜欢
      • 1970-01-01
      • 2021-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-17
      • 1970-01-01
      • 1970-01-01
      • 2021-05-14
      相关资源
      最近更新 更多