【发布时间】:2018-03-25 11:19:34
【问题描述】:
我正在尝试“随时”实现 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 作业)。我的日志什么也没显示。您知道可能是什么问题吗?
感谢您的帮助。 最好的问候,
维吉妮
【问题讨论】:
-
手动运行时的输出是什么? (例如
cd /home/total/site && bundle exec bin/rails runner -e production) -
我的数据被正确提取并保存在我的数据库中。但我没有关于这个过程的日志。
-
你能尝试安排一些记录来尝试调试问题吗?我经常使用
whenever来处理 rake 任务,没有任何问题。这可能是由于以下任何原因而没有执行askubuntu.com/questions/23009/… -
我所做的是每三分钟运行一次任务,在这种情况下,一切正常。我的数据被自动提取并保存在我的数据库中。但是当我尝试在特定时间安排我的任务时,似乎没有任何效果。也许问题来自运行 cron 的时区。我该如何解决?
-
如果您每 3 分钟运行一次,则时区不相关。由于正在运行
bundle exec whenever --update-crontab的用户,我正在考虑更多关于权限问题
标签: ruby-on-rails cron whenever