[英]Rails Capistrano - Whenever Cron appends cron jobs for every Deployment
[英]Ruby on Rails, Capistrano, Whenever: Cron jobs not getting executed at production server
Ruby on rails + Capistrano + Whenever gem
whenever --update-crontab
我whenever --update-crontab
執行,但仍無法在生產服務器上執行cron作業。 日志文件中沒有日志。 盡管在不需要capistrano
開發中一切正常。
schedule.rb
set :output, "../dev/log/cron.log"
every 1.minute do
runner "SOME_TASK"
end
deploy.rb
set :whenever_identifier, ->{ "#{fetch(:application)}_#{fetch(:stage)}" }
頭文件
require "whenever/capistrano"
怎么了 如何調試?
部署我們的應用程序時,我遇到了類似的問題。
如果檢查crontab的日志文件,您會看到它確實執行了,但是在錯誤的上下文中執行了它。
例如:
您認為該代碼應執行,但不能執行:
every 1.minute do runner "bundle exec rake db:seed" end
相反,您應該提供可執行文件的絕對路徑。 Cron不知道應該在哪種上下文中運行,而只是執行。
我們在部署中使用rbenv,並且使用gem填充。 因此,我只是為cron提供了可執行文件的絕對路徑。
這段代碼會運行: every 1.minute do runner "/usr/bin/shims/bundle exec rake db:seed" end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.