我正在使用Whenever gem with rails。由于某种原因,第一个cronjob不起作用。如果我手动将命令粘贴到shell中,它可以正常工作。
第二个“touch testing123.txt”也可以正常使用。
我不知道为什么GiftPackage.do_scheduled_deliveries rails方法没有运行。我现在真的很茫然..任何帮助都将不胜感激!
# Begin Whenever generated tasks for: /var/www/mysite/releases/20130131200554/config/schedule.rb
*/1 * * * * /bin/bash -l -c 'cd /var/www/mysite/releases/20130131200554 && script/rails runner -e staging '\''GiftPackage.do_scheduled_deliveries'\'''
*/1 * * * * /bin/bash -l -c 'cd /var/www/mysite/releases/20130131200554 && touch testing123.txt'
# End Whenever generated tasks for: /var/www/mysite/releases/20130131200554/config/schedule.rb
谢谢! :)
答案 0 :(得分:0)
您很可能在应用程序内部收到错误。
第一步是,使用登台环境在控制台中运行任务。
其次是检查cron日志并查看它是否输出任何错误。
您可以通过将以下内容添加到schedule.rb文件中来设置记录输出的时间;
set :output, "/[path to log]/cron.log"
这可以帮助您更接近找到解决方案。
答案 1 :(得分:0)
尝试在作业之前设置PATH变量,您的cron可能无法找到ruby:
例如:
PATH=/usr/local/rvm/gems/ruby-1.9.3-p194/bin:/usr/local/rvm/gems/ruby-1.9.3-p194@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p194/bin:/usr/local/rvm/bin:/usr/local/sbin:/usr/local/$
# Begin Whenever generated tasks for: /var/www/mysite/releases/20130131200554/config/schedule.rb
*/1 * * * * /bin/bash -l -c 'cd /var/www/mysite/releases/20130131200554 && script/rails runner -e staging '\''GiftPackage.do_scheduled_deliveries'\'''
*/1 * * * * /bin/bash -l -c 'cd /var/www/mysite/releases/20130131200554 && touch testing123.txt'
# End Whenever generated tasks for: /var/www/mysite/releases/20130131200554/config/schedule.rb