我想安排一个cron作业,将发送电子邮件给所有用户的活动结束后尽快结束。注意:每个用户都有不同的时区。
我正在考虑的方法是:我有一个cron作业,将在世界协调时每天晚上11点运行。这种方法确实有效,但每个用户都将根据UTC收到电子邮件,即在凌晨1点、凌晨3点或下午4点不是根据他们的时区。
* 23 * * * 'UTC'
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)
1条答案
按热度按时间mrfwxfqh1#
您可以每隔30分钟运行一次相同的作业,这样它就可以覆盖所有时区。这应该是可行的: