2016-02-06 100 views
0

我在Linux虛擬機上運行Rails 4.2。我使用Nginx作爲我的Web服務器和Passenger作爲我的Web應用程序服務器。乘客死亡後臺工作人員延遲工作

我的應用程序運行沒有任何問題。最近,我開始使用Delayed Job發送電子郵件。這工作正常,但問題是我的後臺工作進程因任何原因被殺害,所以電子郵件沒有被髮送時,他們應該。之後,我SSH到我的服務器,我運行下面的命令來啓動一個後臺工作:

rake jobs:work & 

這觸發關閉後臺進程和分離從終端實例rake命令,所以我希望這一進程繼續運行。該過程似乎被Passenger殺死,因爲我的後臺任務在幾分鐘後不會執行。

如何阻止乘客殺死我的後臺任務?

+0

本着Gaming.SE [傳統]的精神(http://gaming.stackexchange.com/questions/4999/how-can-i-tell-if-a-corpse-is-safe-to-eat) [的](http://gaming.stackexchange.com/questions/24345/how-can-i-kill-adorable-animals)[驚人](http://gaming.stackexchange.com/questions/37805/my-頭 - 保持墮落 - 什麼我可以做)[標題](http://gaming.stackexchange.com/questions/21261/is-it-dangerous-to-go-extreme-pig-riding-雷雨),我希望這會讓它成爲熱門網絡問題。 –

+0

關於如何減少標題的建議?我實際上需要在兩個小時內得到答案,所以你可以說這是一個令人擔憂的情況,但幸運的是我明白了! – Alexander

+0

哦,我認爲標題沒問題 - 這聽起來很有趣,就像Gaming(他們試圖故意這樣做)一樣。 –

回答

0

我想通了!我決定運行delayed_job過程。當運行rake jobs:work &時,它啓動了一個Ruby進程,該進程被Passenger殺死。不過,乘客似乎並沒有消滅其他程序。

Delayed Job documentation,我增加了以下我Gemfile

gem 'daemons' 

然後我跑在我的虛擬機執行以下操作:

RAILS_ENV=production bin/delayed_job start 

我在第一次收到一個權限錯誤,所以腳本沒有運行。爲了突破這個,我設置了delayed_job腳本具有完全讀/寫/執行權限:

chmod +x bin/delayed_job 

我走了約10分鐘,回來,過程仍在運行併發送電子郵件!