Как бы вы вызвали некоторый код после завершения работника Resque? - PullRequest
0 голосов
/ 12 июля 2011

Я хочу выполнить какой-нибудь код ruby ​​после завершения работы работника resque.Я нашел гем resque-status , который позволяет получить статус работника, но как мне выполнить некоторый код, когда статус изменится с working на completed?

1 Ответ

1 голос
/ 12 июля 2011

Это должно быть обработано вне рамок самого рабочего задания.Как правило, вы хотите создать наблюдателя для атрибута данных, которые изменяет работник.

Например, если ваш работник работает над традиционной моделью ActiveRecord, вы можете определить метод after_update в модели (или наблюдателя в этой модели с помощью метода after_update).Вам решать, что проверять в модели, чтобы определить состояние задания (завершено, все еще работает и т. Д.).

В качестве альтернативы вы можете создать атрибут состояния в модели, и работник обновитсостояние модели с использованием традиционных вызовов в стиле AASM.Обратные вызовы перехода между состояниями будут обрабатывать рабочие-> завершенные события.

...