我正在尝试“随时”实现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
答案 0 :(得分:0)
部署后尝试crontab -l
。这将打开您的crontab并列出所有任务。
然后运行whenever --update-crontab
并再次检查crontab -l
。
可能是whenever --update-crontab
没有真正更新你的crontab。
还尝试将:day
更改为1.day
如果您通过capistrano部署,还要检查您的Capfile是否包含require 'whenever/capistrano'
。