是否为不同时区的轨道安排Cron作业?

pgx2nnw8  于 2022-09-21  发布在  Ruby
关注(0)|答案(1)|浏览(180)

我想安排一个cron作业,将发送电子邮件给所有用户的活动结束后尽快结束。注意:每个用户都有不同的时区。

我正在考虑的方法是:我有一个cron作业,将在世界协调时每天晚上11点运行。这种方法确实有效,但每个用户都将根据UTC收到电子邮件,即在凌晨1点、凌晨3点或下午4点不是根据他们的时区。


* 23 * * * 'UTC'
mrfwxfqh

mrfwxfqh1#

您可以每隔30分钟运行一次相同的作业,这样它就可以覆盖所有时区。这应该是可行的:


# run this every 30 minutes

time_zones_with_23 = ActiveSupport::TimeZone.all.select { |tz| tz.now.hour == 23 }.map { |tz| tz.tzinfo.name }
user_list = User.where(time_zone: time_zones_with_23)

相关问题