2014-07-02 43 views
0

我嘗試異常地運行長時間的任務。 但同步運行的任務。是否延遲作業3.0.5可以運行作業的異步?是delayed_job異步?

我想嘗試: 型號:

MyModel < ActiveRecord::Base 

    def do_something 
    sleep 10 
    end 
    #handle_asynchronously :do_something 

end 

,我把它稱爲從控制器:

def do_it 
    new_do = MyModel.new id: 1 
    new_do.delay.do_something 
    render json: {"status":"200"} 
end 

GET請求後,我給我響應之前仍在等待10秒。 那麼,我錯了,我能做些什麼來運行它,並在10秒之前從控制器接收響應?

+1

你可能有一個拼寫錯誤在你的行動'做it'與變量'new_so'。 –

+0

你不應該同時使用'delay'和'handle_asynchronously',一個排除另一個 – mdesantis

+0

我評論thhis稍後@rdlh評論 –

回答

0

不應該使用handle_asynchronouslydelay。只使用其中一種,而不是同時使用。

如果您的方法應該始終在後臺運行,請選擇#handle_asynchronously

Documentation here

+0

是的,我嘗試沒有'handle_asynchronously'。沒有其他的。應用程序和工作人員重新啓動,但工作同步運行無論如何。我也試過'handle_asynchronously',沒有'.delay'。無論如何同步全天! ^) –

+0

Bah新聞哈哈! '耙子工作:明確&&耙子工作:工作完成? –

+0

我使用腳本調用RAILS_ENV =開發腳本/ delayed_job重新啓動,並從數據庫手動deletind delayed_job記錄。所以,我重新啓動了puma和nginx和服務器。沒有任何幫助我。 –