2011-12-29 2 views
0

Я даю resque попробовать, но не уверен в lifecyle экземпляра Resque worker. Допустим, у меня есть задача настроить следующим образом:Когда рабочее условие resque останавливается в жизненном цикле объекта 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 

Возвращает ли жизненный цикл работника работнику после создания сообщения или он продолжается до тех пор, пока метод after_create в модели сообщений не будет завершен? В других терминах, насколько далеко перемещается рабочий процесс resque вместе с жизненным циклом объекта ActiveRecord?

ответ

1

Оказывается, что работник resque не несет ответственности за события after_create, которые он вызывает. Эти события будут переданы экземпляру рельсов.

Вот ответ: https://github.com/defunkt/resque/issues/483#issuecomment-3396215

+0

Хотя это теоретически может ответить на вопрос, [было бы предпочтительнее] (http://meta.stackexchange.com/q/8259), чтобы включать в себя основные части ответа здесь, и укажите ссылку для справки. – oers

+0

спасибо, что напомнил, только что сделал редактирование. – Bek