单个cron作业在几个时区node-cron上运行

时间:2015-11-04 10:30:48

标签: node.js cron timezone scheduled-tasks node-cron

我已经使用node-cron配置了作业,是的,我喜欢这个节点模块来安排节点中的作业。

这里我要求向位于不同时区的用户发送推送通知。我想在特定时间向他们发送通知。

我们说我将在晚上9点发送通知,因此在所有列出的时区中,cron作业将在晚上9点触发。

var CronJob = require('cron').CronJob;
var job = new CronJob('00 30 11 * * 1-5', function() {
  /*
   * Runs every weekday (Monday through Friday)
   * at 11:30:00 AM. It does not run on Saturday
   * or Sunday.
   */
  }, function () {
    /* This function is executed when the job stops */
  },
  true, /* Start the job right now */
  timeZone /* Time zone of this job. */
);

我知道这一切,而且我正在为那个文档中提到的一个时区做同样的事情。

  

timeZone - [可选] - 指定执行的时区。这个   将修改相对于您的时区的实际时间。

但我可以在timezone属性中指定多个时区吗?

如果有人知道其他节点模块可以实现这一点,那么请告诉我?

注意:我已经知道我可以为每个时区配置多个配置,但如果有动态列表则会怎样。

1 个答案:

答案 0 :(得分:0)

我不知道如何向CRON作业发送时区列表,但您可以更改在cron作业中运行的方法中的逻辑。

你可以这样做:

  • 每半小时运行一次工作
  • 如果有一天你想让它在
  • 上运行
  • 选择用户在哪里(将当前GMT时间转换为用户时区 - 如果db可以执行此操作)>上午11:30在他们的时区&&尚未发送通知
  • 向返回的用户发送通知。

你可能已经走了这条路......只是扔进我的2c

HTH