2011-12-29 11 views
0

私はresqueを試していますが、resqueワーカーインスタンスのライフサイクルについてはわかりません。ActiveRecordオブジェクトライフサイクルでresque workerジョブがいつ停止するのですか?

class Message < ActiveRecord::Base 

    after_create (or after_commit) :do_a_ridiculous_long_task 

    def do_a_ridiculous_long_task 
    do_something 
    end 

end 
:メッセージが作成された後、別の長い実行中のタスクを呼び出しafter_createフックがある

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メソッドが終了するまで継続されますか?言い換えれば、ActiveRecordオブジェクトのライフサイクルに沿って、作業者がどの程度トレールするのでしょうか?

答えて

1

resqueワーカーはトリガーされるafter_createイベントの責任を負いません。これらのイベントは、レールインスタンスに渡されます。ここ

は答えは:https://github.com/defunkt/resque/issues/483#issuecomment-3396215

+0

これは理論的回答の要部を含むように(http://meta.stackexchange.com/q/8259)が好ましいであろう]、質問に答えることができるけれどもここで参照してください。 – oers

+0

思い出してくれてありがとう、ちょうど編集をしました。 – Bek

関連する問題