簡體   English   中英

Ruby on Rails,Capistrano,無論何時:Cron作業未在生產服務器上執行

[英]Ruby on Rails, Capistrano, Whenever: Cron jobs not getting executed at production server

Ruby on rails + Capistrano + Whenever gem

whenever --update-crontabwhenever --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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM