1

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

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

假设我在晚上 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 - [可选] - 指定执行的时区。这将修改相对于您的时区的实际时间。

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

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

注意:我已经知道我可以在这里为每个时区配置多个配置,但是如果有动态列表怎么办。

4

1 回答 1

0

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

你可以这样做:

  • 每半小时运行一次作业
  • 如果这是您希望它继续运行的一天
  • 选择用户(将当前 GMT 时间转换为用户时区 - 如果数据库可以这样做)> 11:30 AM 在他们的时区 && 尚未发送通知
  • 向返回的用户发送通知。

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

高温高压

于 2015-11-05T04:17:31.327 回答