【问题标题】:rails : running rake task in cron jobrails : 在 cron 作业中运行 rake 任务
【发布时间】:2014-05-27 03:44:17
【问题描述】:

我正在尝试像这样在 cron 作业中运行 rake 任务

0 * * * *  cd /var/www/rails_path/rails && rake my_task RAILS_ENV=production

我可以运行这个命令

cd /var/www/rails_path/rails && rake my_task RAILS_ENV=production

从 shell 得到结果。

我检查了 commond 运行的 cron 日志。但事实上,当 cron 作业执行时,rake 任务并没有运行(任务应该有日志,在 cron 作业运行后我没有看到这个 rake 任务的日志)。

有什么问题?

更新:

试过了

0 * * * * /bin/bash -l -c "cd /var/www/rails_path/rails && rake my_task RAILS_ENV=production"

运气不好

已安装whenever gem 并拥有

every 2.minutes do
   rake "my_task"
end

在 ./config/schdule.rb 中。它根本没有运行(我在带有乘客的 nginx 中部署了 rails)。

谢谢

【问题讨论】:

    标签: ruby-on-rails linux cron rake


    【解决方案1】:

    试试这个:

    0 * * * * /bin/bash -l -c 'cd your_app_path && RAILS_ENV=production bundle exec rake your_task'

    或者,如果您想在 cron 中执行命令行 rails 工作,最好使用 whenever gem。

    【讨论】:

    • 谢谢,无论何时对乘客都有效吗?我尝试了 rufus-scheduler,它似乎对乘客不太好
    • 我在 nginx+puma 和 nginx+unicorn 中进行了测试,但没有在乘客中进行测试。但我认为它会起作用,因为与 rufus-scheduler 页面不同,在任何时候 github 页面中都没有关于乘客的问题。
    猜你喜欢
    • 2011-10-19
    • 2021-10-12
    • 2018-12-15
    • 2011-12-03
    • 2011-07-27
    • 2011-03-04
    • 1970-01-01
    • 2021-05-13
    • 1970-01-01
    相关资源
    最近更新 更多