[英]Rufus-scheduler variable for time zone - ruby on rails
我正在運行一個使用rufus-scheduler的Rails應用程序,它在中午將每日電子郵件發送給所有用戶,但是,它當前正午在應用程序時區“台北”發送出去。
我正在注冊時捕獲用戶時區,但無法將變量放入rufus-scheduler任務中
scheduler.cron('0 15 * * * @time_zone') do
Account.all.each do |account|
CODE
account.users.each do |user|
DELIVER EMAIL CODE
end
end
end
我猜我只是不確定在哪里定義@time_zone變量,以便rufus可以正確讀取它。
提前致謝!
調度程序不需要關心時區,最好考慮使用UTC。 您要做的就是每小時運行一次任務,並僅查找當前午夜的那些帳戶。 因此,您的代碼將更像這樣:
scheduler.cron('0 * * * *') do
tz = THE TIMEZONE WHERE IT IS NOW MIDNIGHT
Account.where(:timezone => tz).each do |account|
CODE
account.users.each do |user|
DELIVER EMAIL CODE
end
end
end
scheduler.cron("0 15 * * * #{@time_zone}") do
# ...
end
rufus-scheduler README說
時區是'tzinfo'rubygem( https://github.com/tzinfo/tzinfo )支持的時區。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.