无法在生产中工作的Cron工作

时间:2017-10-13 10:35:10

标签: ruby-on-rails cron whenever

我正在尝试“随时”实现gem,这样我每天都可以运行自动任务。

这是我的schedule.rb文件:

env :PATH, ENV['PATH']
set :output, "log/cron_log.log"

every :day, at: '10:10 am' do
  runner "Task.new.get_drivers"
end

every :day, at: '10:15 am' do
  runner "Task.new.get_deliveries"
end

every :day, at: '10:20 am' do
  runner "Task.new.update_deliveries"
end

在生产中,我按照文档中的说明“每当--update-crontab”运行此命令行。

到目前为止,一切似乎都运转良好。当我“运行”命令行时,我得到了这个结果:

# Begin Whenever generated tasks for: /home/total/site/config/schedule.rb
PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/total/.local/bin:/home/total/bin

10 10 * * * /bin/bash -l -c 'cd /home/total/site && bundle exec bin/rails runner -e production '\''Task.new.get_drivers'\'' >> log/cron_log.log 2>&1'

15 10 * * * /bin/bash -l -c 'cd /home/total/site && bundle exec bin/rails runner -e production '\''Task.new.get_deliveries'\'' >> log/cron_log.log 2>&1'

20 10 * * * /bin/bash -l -c 'cd /home/total/site && bundle exec bin/rails runner -e production '\''Task.new.update_deliveries'\'' >> log/cron_log.log 2>&1'

# End Whenever generated tasks for: /home/total/site/config/schedule.rb

但最后,没有任何反应(除非我在自己的控制台中运行自己的cron作业)。我的日志什么也没显示。你知道可能出现什么问题吗?

感谢您的帮助。 最好的问候,

和Virginie

1 个答案:

答案 0 :(得分:0)

部署后尝试crontab -l。这将打开您的crontab并列出所有任务。 然后运行whenever --update-crontab并再次检查crontab -l。 可能是whenever --update-crontab没有真正更新你的crontab。

还尝试将:day更改为1.day

如果您通过capistrano部署,还要检查您的Capfile是否包含require 'whenever/capistrano'