Heroku Scheduler时区?

Dea*_*ean 7 heroku

调度程序的Heroku时区是什么?它说"UTC",但我不确定这是否正确.尽管正确地转换了时区,但我的任务正在错误的时间开始.

思考?

n_i*_*c_k 4

这个问题有点老了,但是,是的,即使您在应用程序中指定了时区,Heroku Scheduler 也肯定使用 UTC。我用这段代码测试了它:

task :send_test_email => :environment do
  if Date.today.strftime("%A").downcase == 'monday'
    UserMailer.send_test_email(Time.now.strftime("%Z")).deliver
  end
end
Run Code Online (Sandbox Code Playgroud)

我在太平洋时区。我将 Heroku Scheduler 设置为每 10 分钟运行一次,并且这封电子邮件能够在太平洋标准时间周日晚上发送,即 UTC 时间周一。另外,我传递给邮件程序的字符串Time.now.strftime("%Z")被设置为电子邮件的主题,该主题确实显示为“UTC”

夏令时是造成混乱的一个潜在来源。例如,UTC 始终比太平洋标准时间(PST - 用于冬季)早 8 小时,比太平洋夏令时间(PDT - 用于夏季)早 7 小时。因此,如果您的任务晚了一个小时,则可能是您从错误的 UTC 时区测量的。