【问题标题】:Using whenever gem to schedule a cron job使用无论何时 gem 来安排一个 cron 作业
【发布时间】:2012-11-05 07:37:10
【问题描述】:

我一直在测试以弄清楚如何使用它,即使在阅读了 Github 文档之后也遇到了麻烦。

我只是想像这样更新模型的属性 (config/schedule.rb)

设置:输出“/log/today.log”

every 10.seconds do
  runner "Example.update_all(sample: Time.now)"
end

我既没有看到日志文件,也没有看到模型属性更新。

有什么我做的不对吗?

【问题讨论】:

  • 你部署 crontab 作业了吗?尝试运行whenever -w。你也可以试试crontab -l,它应该包含你在 schedule.rb 中的行
  • 今天早些时候做了这个,输出如下。不知道为什么它只选择在生产中这样做?我正在本地对此进行测试,以便解释为什么它没有触发。
  • whenever --help 有设置环境的选项,检查一下

标签: ruby-on-rails ruby ruby-on-rails-3 whenever


【解决方案1】:

首先,您需要在 cron 选项卡中添加您的 cron 作业。 如果您不想添加,因为您只是在测试它,您可以尝试下面给出的代码(我为我的 rails 应用程序所做的)。

cd /home/your_home/your_project && script/your_script -e <environment> "method_call"

在你的情况下:

environment = development method_call = Example.update_all(sample: Time.now)

也许对你有帮助。

【讨论】:

  • 这是我的 crontab -l 的输出: # Begin 每当生成任务时:/Users/bhander/Dropbox/workspace/rails_projects/chores/config/schedule.rb * * * * * /bin/bash -l -c 'cd /home/your_home/you_project && script/rails runner -e production '\''Example.update_all(sample: Time.now)'\'' >> /log/today.log 2>&1'
  • 我怀疑是因为它在生产环境中,我在本地主机上看不到更新。这很容易改变吗?
猜你喜欢
  • 2012-01-27
  • 2012-01-21
  • 2015-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-25
  • 2012-11-07
  • 2019-03-27
相关资源
最近更新 更多