2011-03-23 97 views
1

我在收到delayed_job重新啓動時遇到問題。無法啓動delayed_jobs進程

當我登錄並運行耙delayed_job RAILS_ENV=production一切正常,所有作業的處理,但是如果運行RAILS_ENV=production script/delayed_job restart一個新進程啓動,但沒有工作的進行處理。

更新:我還應該提到,我可以在我的開發計算機上運行上述兩個命令,並且在這兩種情況下都可以正確處理所有延遲的作業。

更新:我刪除了以前的更新,因爲它是關於從我的機器上運行腳本,但因爲我不能讓delayed_jobs處理調用服務器上的命令時的任務,有沒有用使事情變得更加複雜。

更新:前面我提到運行RAILS_ENV=production script/delayed_job restart啓動了一個進程,但沒有做任何處理。事實證明,即使在運行該命令後顯示了一個pid,沒有進程匹配該pid,或者是否有任何額外的ruby進程正在運行。下面是腳本/ delayed_job的文件的內容:我有同樣的問題

#!/usr/bin/env ruby 

require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment')) 
require 'delayed/command' 
Delayed::Command.new(ARGV).daemonize 

我使用delayed_jobs V2.0.4

回答

2

,您需要將環境作爲傳遞參數給腳本。這裏也有一些怪癖在正確的腳本處理環境變量:

ruby script/delayed_job -e production restart 
+0

我給了一個沒有運氣的去。但是我注意到它在加載rails 2.3.8 gem時遇到了問題。有關這些詳細信息,請參閱原始帖子中的更新。 – chris 2011-03-23 22:10:17

+0

在產生這個錯誤的機器上檢查你的.gemrc文件...也許有任何搜索路徑設置? – hurikhan77 2011-03-23 22:26:11

+1

根據https://github.com/collectiveidea/delayed_job/issues/7通過-e參數設置環境不再受支持,除非此問題稍後有修復。 – chris 2011-03-24 00:15:36

0

我有類似的問題得到任何delayed_job守護進程啓動。我將其追溯到權限問題。如果您使用的是部署用戶,請確保該用戶的腳本/ delayed_job和日誌目錄可寫。或者,修改/ etc/group以將該用戶的權限授予這些文件上的分配組。

我的環境:
紅寶石(REE-1.8.7-2012.02)
導軌(3.2.6)
的delayed_job(3.0.3)
delayed_job_active_record(0.3.2)
守護程序(1.1.8 )

0

如果這在您的生產機器上,請確保您有權訪問tmp/pids文件夾。沒有它,你將無法創建任何守護進程。