2013-03-17 147 views
0

我想在某種特定方法後直接啓動作業。所以,我用通常的rails來啓動應用程序。上傳一些東西,所以創建方法被調用。創建方法之後:perform_analysis -method被延遲。有些數據被插入到delayed_jobs表中。通常我會讓工作人員在命令行中輸入"script/delayed_job start"。但我想自動啓動工作,所以我不會輸入任何內容。紅寶石在軌道上,與軌道延遲作業s

型號:

after_create :perform_analysis 
def perform_analysis 
bla 
end 
handle_asynchronously :perform_analysis, :run_at => Proc.new { 5.minutes.from_now } 

所以,我運行軌道秒的應用。我登錄我的wep頁面。上傳一些文件,5分鐘後作業延遲。然後工人應該開始工作。 我發現this page幾乎是我想要的,但不知何故,工人根本就沒有開始。因此schedule.rb未運行。我應該做一些更多的事情,而不是在該網頁上告知的事情?

是否有任何其他可能做到這一點?

回答

0

我建議你看一看工頭(http://ddollar.github.com/foreman/),讓您的procfile申報工作進程:

web: bundle exec rails s 
worker: bundle exec rake jobs:work 

這樣,一個命令foreman start將啓動服務器和工人。輸出將顯示在兩個窗口中。

+0

僅僅在創建方法後的一分鐘內就可以啓動worker了嗎? – Tonja 2013-03-17 19:39:15

+0

我以前沒有看到過這個設置。你有沒有理由不繼續工作? – Leito 2013-03-18 13:25:51