【问题标题】:Rails 3 / whenever cron not firingRails 3 /每当cron不触发时
【发布时间】:2012-01-10 16:33:19
【问题描述】:

我正在使用 whenever 为我的应用每 5 分钟触发一次 rake 任务。

schedule.rb:

every 5.minutes do   
rake "audit",
:environment => 'development'
end

控制台中的“无论何时”:

0,5,10,15,20,25,30,35,40,45,50,55 * * * * /bin/bash -l -c 'cd /Users/john/Sites/rambler && RAILS_ENV=development bundle exec rake audit --silent'

控制台中的“rake audit”工作正常。

所以一切看起来都很好......除了它不起作用。每五分钟没有任何事情发生。

这是因为我试图在开发/本地运行它吗?

谢谢!

【问题讨论】:

  • 您使用哪个用户来运行 cron 作业?
  • 好问题.. 我没有看到任何配置用户的选项?

标签: ruby-on-rails-3 whenever


【解决方案1】:

每次更改 cron 文件时都需要更新它。

添加 cron 作业后,请执行以下操作:

每当 --update-crontab 'project_name'

我也发现只有在生产模式下才能正常工作。

更新

我发现我们也可以在开发模式下使用whenever。只需添加

set :environment, "development"
set :output, {:error => "log/error.log", :standard => "log/cron.log"}  

到您的 scehdule.rb 文件。 (日志是可选的,但您仍然可以将其用于测试目的)

【讨论】:

    【解决方案2】:

    我终于解决了如何在任何时候运行 gem。它在生产中运行良好,但在开发模式下却不行(我认为要在开发模式下运行良好,您必须做一些技巧)。 查看在开发模式下工作的答案:Cron not working in Whenever gem

    然后,这些是要做的过程:

    1. 安装 gem
    2. 编写您的 scheduler.rb 文件
    3. 推送到远程服务器
    4. 登录远程服务器(例如使用 ssh)
    5. 通过在终端中运行查看是否上传好:无论何时
    6. 通过运行每当 crontab 时更新:无论何时 --update-crontab
    7. 重启服务器 crontab(例如在 ubuntu 中):sudo service cron restart
    8. 检查 crontab 是否在服务器上实现良好:crontab -l

    就是这样!

    【讨论】:

      猜你喜欢
      • 2012-04-21
      • 1970-01-01
      • 2013-10-20
      • 2011-10-22
      • 2012-01-23
      • 2016-11-18
      • 2014-01-12
      • 2017-11-05
      • 1970-01-01
      相关资源
      最近更新 更多