簡體   English   中英

Rufus-Scheduler時區變量-Ruby on Rails

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM