【问题标题】:Cron Job stops working on productionCron Job 停止生产
【发布时间】:2015-06-23 06:37:15
【问题描述】:

我有一个 cron 作业在开发中按预期运行,但在生产中停止工作:

models/user.rb

def self.recalculate_age
  User.all.each do |user|
    user.recalculate
  end
end

def recalculate
  self.age = self.age + 1.37
  self.save!
end

config/schedule.rb

every 1.day, :at => '12:00 am' do
  runner "User.recalculate_age", :environment => 'development'
end

我忘记了用于在开发中启动 cron 作业的终端命令,但我很确定它在生产中无论如何都会有所不同,对吧?

另外,我可以将:environment => 'development' 更改为:environment => 'production' 吗?

【问题讨论】:

    标签: ruby-on-rails cron crontab production-environment cron-task


    【解决方案1】:

    whenever gem 将默认用于生产,因此只需删除您的 schedule.rb 文件中的 :environment 选项,您就可以进入生产环境了。

    在开发中,使用--set 选项来设置环境。示例

    whenever --update-crontab --set environment='development'
    

    【讨论】:

      【解决方案2】:

      如果我是对的,并且您正在使用 gem,那么您应该通过在控制台中输入来开始生产中的 cron 作业:

      whenever --update-crontab
      

      当然,如果您希望在生产环境中运行,您应该将环境更改为生产环境。 要查看当前正在运行的 cron 任务,您可以使用:

      crontab -l
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-06-03
        • 1970-01-01
        • 2020-04-09
        • 2014-11-20
        • 2021-06-27
        • 2017-06-14
        • 2016-03-27
        • 2023-03-18
        相关资源
        最近更新 更多