2012-02-16 91 views
0

我已經編寫了一個類,通過監視提交的作業表來運行後臺作業服務器。運行服務器所需的代碼基本上是:叉作爲任務控制的後臺作業任務欄杆

j = JobServer.new 
j.run! 

我在測試一個Rake任務這個包裹,但現在我想辦法後臺工作,並提供一個init腳本來管理該服務器。我花了一段時間玩了daemons寶石,但最終得出結論,它關閉了我的文件描述符,當脫離後臺proc。這是行不通的,因爲我的數據庫後端是SQLite3,關閉那個文件描述符往往會讓Rails生氣。

有沒有簡單的方法來完成我想要做的事情?我會補充一點,我剛剛在另一個用戶的回答中看到了delayed_job gem,但是如果我可以幫忙的話,我不想重寫我的JobServer類。

+0

我認爲你應該嘗試resque或delayed_job,可能它沒有太多的改變你的code.try resque根據我的意見 – Amar 2012-02-17 04:36:50

回答

0

您使用的菌種方法

http://www.ruby-doc.org/core-1.9.3/Process.html#method-c-spawn 

可能會寫一個可愛的小耙子,這將讓你開始/停止/重啓作業服務器。

+0

我最終用'Process :: fork'自己寫邏輯。我開始研究'Process :: spawn',但我需要從Rake分離出來的Rails環境。感謝您指點我正確的方向。 – 2012-02-17 15:47:19