Когда задание восстановления рабочего останавливается в жизненном цикле объекта ActiveRecord? - PullRequest
0 голосов
/ 29 декабря 2011

Я даю попытку реску, но не уверен насчет жизненного цикла рабочего экземпляра реска.Допустим, у меня есть задача, настроенная следующим образом:

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 работника сразу после создания сообщения или продолжается до тех пор, пока не будет завершен метод after_create в модели сообщений?Другими словами, как далеко resque рабочий трейл вместе с жизненным циклом объекта ActiveRecord?

1 Ответ

1 голос
/ 28 января 2012

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

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

...