2014-01-18 284 views
2

我希望我有更多的信息放在這裏,但我只是拋出網絡,希望有人對我可以嘗試什麼或看什麼方向有一些想法。基本上我有一個使用延遲工作的Rails應用程序。它將一個過程花費大約10或15分鐘時間完成後臺任務。直到昨天它工作得很好。現在,每次登錄到服務器時,都會發現沒有延遲的作業進程正在運行。我已經重新啓動,停止並開始等十幾次,並且無處可去。第二個嘗試處理隊列中的第一個項目,進程被終止,沒有任何東西被記錄到日誌文件中。delayed_job過程默默地退出

我試圖運行這樣的:

RAILS_ENV=production script/delayed_job run 

而不是正常的守護進程:

RAILS_ENV=production script/delayed_job start 

並沒有給我了信息。這裏是輸出:

delayed_job: process with pid 4880 started. 
Killed 

在它剛殺死之前它運行了大概10秒。我不知道從哪裏開始。我已經嘗試了很多東西,比如將daemon gem降級到1.0.10,就像在其他文章中建議的那樣。

任何想法都會很棒。

+0

你是否檢查過「log/production.log'和'log/delayed_job.log'這兩個錯誤?也許只是嘗試以'正常'模式引導它,看看是否在終端顯示錯誤'RAILS_ENV = production bundle exec rake jobs:work' - 我也通常使用bundle啓動腳本,也就是'RAILS_ENV = production bundle exec script/delayed_job start' – house9

+0

服務器是否有足夠的馬力來運行你的工作?你是否也使用這臺機器來提供網絡請求? – house9

+1

嘿,我相信你用第二條評論把它釘在了腦袋上。我最近把這個盒子的大小從2GB降到了1GB。我在更小的(1GB)節點之間進行負載平衡。我相信這個過程會咀嚼所有的內存,並且操作系統會殺死它。我將這個盒子的大小設置爲2GB,現在可以使用了!看起來我必須找到一種方法來提高腳本的效率。它拉動了大約3百萬條記錄並對它進行了一些數字處理。它只需要每週一次這樣做,所以很難證明有這麼大的腳印盒。哦,現在問題解決了!謝謝! – Sean

回答

2

如果遇到任何其他問題,解決方案是,它只是內存不足而且操作系統正在殺死它。

我跑了幾次工作,並在等待時觀看了頂部。我看到該pid的內存使用量緩慢攀升,直到進程死亡並釋放所有內存。

希望可以幫助別人。