2011-12-29 48 views
0

我給resque一個嘗試,但不知道resque工人實例的生命週期。可以說我有任務的設置方式如下:何時resque worker作業在ActiveRecord對象生命週期中停止?

class User 

    def self.start_job(str) 
    Resque.enqueue(Job, str) 
    end 

end 

class Job 

    def self.perform(str) 
    Message.create(:user => str.split(" ")[0], 
        :message => str.split(" ")[1]) 
    end 

end 

創建消息後,有它調用另一個長時間運行的任務after_create鉤:

class Message < ActiveRecord::Base 

    after_create (or after_commit) :do_a_ridiculous_long_task 

    def do_a_ridiculous_long_task 
    do_something 
    end 

end 

在消息創建完成後,resque worker的生命週期是否結束?還是直到消息模型中的after_create方法完成後才繼續?換句話說,resque worker跟ActiveRecord對象的生命週期有多遠?

回答

1

原來,resque工作人員不負責after_create它會觸發的事件。這些事件將傳遞給rails實例。

下面是答案:https://github.com/defunkt/resque/issues/483#issuecomment-3396215

+0

雖然這在理論上可以回答的問題,[這將是優選的](http://meta.stackexchange.com/q/8259)以包括回答的主要部分這裏,並提供鏈接供參考。 – oers 2012-01-31 10:51:40

+0

感謝提醒,只是做了編輯。 – Bek 2012-03-18 22:01:07