【问题标题】:Rails delayed_job is using a different time zoneRails delay_job 使用不同的时区
【发布时间】:2023-03-07 02:15:01
【问题描述】:

所以我想弄清楚为什么我的延迟作业没有运行,我想我可能有一个想法。

我不确定这是时差还是发生了什么,但这是我注意到的第一个问题。

irb(main):002:0> Delayed::Job.first
  Delayed::Backend::ActiveRecord::Job Load (0.6ms)  SELECT  `delayed_jobs`.* FROM `delayed_jobs` ORDER BY `delayed_jobs`.`id` ASC LIMIT 1
=> #<Delayed::Backend::ActiveRecord::Job id: 8, priority: 0, attempts: 0, handler: "--- !ruby/object:Delayed::PerformableMethod\nobject...", last_error: nil, run_at: "2018-02-25 05:50:00", locked_at: nil, failed_at: nil, locked_by: nil, queue: nil, created_at: "2018-02-25 05:40:47", updated_at: "2018-02-25 05:40:47">

在上述命令输出中,显示作业将在 2018 年 2 月 25 日凌晨 5:50 运行。但是,在 Rails 应用程序中,我安排此作业在 2018 年 2 月 24 日晚上 11:50 CST 运行。

如果我从 Rails 控制台运行 Time.now,这是我得到的输出:

irb(main):003:0> Time.now
=> 2018-02-24 23:46:15 -0600

有趣的是,当我运行Delayed::Job.all 命令时,我可以看到created_atupdated_at 属性位于错误的时区或其他什么地方。那么Delayed::Job 是否只能根据Time.now 配置的内容运行?

在我的 config/application.rb 文件中,我确实将时区配置为 Central,如下所示:

[nutella:~/rails_apps/instaweb]$ cat config/application.rb| grep -i time                                                                                       11:49PM/02.24
    config.time_zone = "Central Time (US & Canada)"

对于为什么延迟的作业没有运行有点困惑,非常感谢任何帮助。

【问题讨论】:

    标签: ruby-on-rails delayed-job


    【解决方案1】:

    尝试将此行也添加到 application.rb :

    config.active_record.default_timezone = :local

    【讨论】:

    • 尝试添加,然后重新启动 Rails 服务器。从现在开始,Delayed::Job.all 命令似乎仍显示计划任务的输出 6 小时。它真的会从现在开始运行 6 小时吗?或者它会基于 UTC 运行(意思是如果我安排它在 5 分钟内运行,它将在 5 分钟内运行)?我几乎觉得它正在为 UTC 安排时间,但会在它到达基于当地时间的那个时间时运行。
    • 好的。你能告诉我当你在 Rails 控制台中运行 Delayed::Job.first.run_at.zone 时它会显示什么吗?
    • 太棒了。那么这不是想要的结果吗?还是在创建延迟作业时仍有任何差异?
    • 仍然是一个奇怪的差异。有时创建和更新的仍然在不同的时区
    • 好的。通过一次注释一个来尝试这两个配置行的不同组合。
    【解决方案2】:

    所以我浏览了故障排除指南,看起来我并没有实际启动延迟作业流程。现在我能够解决这个问题,一切都很好。感谢大家的帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-14
      • 2011-03-06
      • 2010-11-26
      • 1970-01-01
      • 2014-03-16
      • 2012-10-07
      • 2011-12-11
      • 2014-07-17
      相关资源
      最近更新 更多