首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails中的多时区任务调度(使用whenever)

Rails中的多时区任务调度(使用whenever)
EN

Stack Overflow用户
提问于 2016-08-01 20:38:33
回答 1查看 709关注 0票数 4

我们目前正在使用‘a’来调度Rails项目中的作业。系统正在扩展以支持多个时区的用户(时区存储在用户模型中),我们希望在用户一天中的特定时间发送电子邮件。

有没有关于实现这一点的最佳模式的想法?我预计每个电子邮件任务有24个(或更多--有一半的时区)“任何时候”任务,每个任务在用户表上都有一个不同的时区过滤器。

有没有更干净的解决方案的想法?一个比任何时候都更好的调度器?将创建24/48 cronjob并调用传递时区或UTC偏移量的回调?差不多吧。

EN

回答 1

Stack Overflow用户

发布于 2016-11-11 07:22:00

我不熟悉“无论何时”,但我遇到了类似的挑战,并使用了clockwork

我的问题是,我必须在午夜为我的每个客户运行一个进程。和你一样,我的客户可能在世界上的任何地方,所以它必须在他们的时间午夜运行。

在午夜运行作业的过程如下所示:

代码语言:javascript
复制
TZInfo::Timezone.all_country_zone_identifiers.each do |zone|                                                                                                                                                                                               
  every(1.day, {time_zone: zone}, at: '00:00', tz: "#{zone}") do |job_attr|                                                                                                                                  
    time_zone = job_attr[:time_zone]                                                                                                                                                                                   
    YourJob.perform_later(time_zone)                                                                                                                                                                                           
  end                                                                                                                                                                                                                                    
end

“YourJob”类将找到所有使用该time_zone的客户,并执行一项工作。

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38699137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档