在几个时区node-cron上运行单个cron作业
问题描述:
我已经配置了作业node-cron,是的,我喜欢这个节点模块来安排节点中的作业。在几个时区node-cron上运行单个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 - [可选] - 指定执行的时区。这 将修改相对于您的时区的实际时间。
但是我可以在时区属性中指定多个时区吗?
如果有人知道其他节点模块可以实现这个,那么让我知道?
注意:我已经知道我可以在这里为每个时区配置多个配置,但如果有动态列表会怎么样。
答
我不知道如何将时区列表发送到CRON作业,但是您可以更改在cron作业内运行的方法中的逻辑。
你可以这样做:
- 运行作业每半小时
- ,如果它是你希望它在
- 选择用户在哪里(将电流转换GMT时间用户的时区每天跑 - 如果db可以做到这一点)> 11:30 AM在他们的时区& &尚未发出通知
- 发送通知给返回的用户。
您可能已经走了这条路......只是我2C
HTH扔
是无人接听类似的问题:http://stackoverflow.com/questions/32580629/run-a -single-cron-for-multiple-time-zones-node-js – guptakvgaurav
我经历了同样的问题,找不到任何现成的解决方案。所以,我以某种方式设法开发了一种解决方法,我在注册用户所在的时区中维护了一个独特的列表(json文件中的数组),并且每当他们在这个列表中出现新的条目时,我都会发现一个新的工作。 我认为另一种解决方案(但后来放弃)是为所有可能的时区安排cron作业,并找出属于该区域的用户并发送推送通知。 – guptakvgaurav
Ooops,是的,我没有找到,谢谢。我也会继续关注。 –