2012-01-10 51 views
1

我正在使用whenever每5分鐘爲我的應用開啓一次rake任務。Rails 3 /每當cron沒有開火時

schedule.rb:

every 5.minutes do 
rake "audit", 
:environment => 'development' 
end 

「每當」 在控制檯:

0,5,10,15,20,25,30,35,40,45,50,55 * * * * /bin/bash -l -c 'cd /Users/john/Sites/rambler && RAILS_ENV=development bundle exec rake audit --silent' 

「耙審計」 控制檯正常工作。

所以一切看起來不錯....除了它不工作。每五分鐘沒有任何反應。

這是因爲我試圖在開發/本地運行它?

謝謝!

+0

您正在使用哪個用戶來運行cron作業? – 2012-01-10 17:49:09

+0

好問題..我沒有看到任何配置用戶的選項? – 2012-01-11 23:44:15

回答

0

最後我解決了如何運行gem Whenever。它在生產環境中工作良好,但不在開發模式(我認爲要在開發模式下工作良好,你必須做一些技巧)。 看到這個答案在開發模式下工作:Cron not working in Whenever gem

然後,這些都是過程要做到:

  1. 安裝寶石
  2. 寫你scheduler.rb文件
  3. 推到遠程服務器
  4. 登錄到遠程服務器(例如用ssh)
  5. 看看是否通過在終端上運行好:只要
  6. 更新時的crontab運行:每當--update-的crontab
  7. 重啓服務器的crontab(例如在Ubuntu):sudo的服務的cron重啓
  8. 檢查服務器上,如果crontab中有很好的實施:的crontab -l

就是這樣!

1

您需要在每次更改時更新您的cron文件。

你addded您的cron作業後做到這一點:

每當--update-crontab的 'PROJECT_NAME'

而且我只工作時只生產模式精細找到。

UPDATE

我發現,我們可以在開發模式下使用whenever也。只需在您的scehdule.rb文件中添加

set :environment, "development" 
set :output, {:error => "log/error.log", :standard => "log/cron.log"} 

。 (日誌之一是可選的,但您仍然可以將其用於測試目的)