Есть ли способ заставить delayed_job выполнять некоторый код однократного запуска при запуске и использовать его во всех заданиях?

Итак, у меня есть задача delayed_job, которая отправляет некоторую информацию на сервер XMPP. В идеале вы создаете соединение с XMPP один раз, а затем постоянно отправляете в него данные, а не создаете новое соединение каждый раз, когда у вас есть какие-то данные для отправки.

Есть ли какое-либо средство в delayed_job для запуска своего рода метода «настройки» при запуске рабочего процесса, установить ли он некоторые переменные экземпляра (например, объект соединения XMPP), которые затем могут использоваться всеми возникающими заданиями? Ничего страшного, если каждый воркер запускает свой собственный метод настройки. Я просто не хочу, чтобы каждое задание (тысячи в день) каждый раз подключалось к серверу XMPP с нуля.

Спасибо за любую помощь!


person Rob Cameron    schedule 22.03.2010    source источник
comment
Я закончил тем, что просто написал свою собственную маленькую бегущую работу, чтобы сделать это.   -  person Rob Cameron    schedule 02.04.2010
comment
Вы можете ответить на свой вопрос и принять это, если считаете, что другие читатели SO могут найти ваше решение полезным.   -  person Charles Stewart    schedule 03.04.2010


Ответы (1)


В отложенном задании теперь есть «хуки» (постановка в очередь, до, после, успех, ошибка, сбой) — похоже, они были добавлены примерно в июне 2010 года. Хук «до», вероятно, сработает в случае, когда вы хотите найти существующее соединение для повторного использования. .

person Greg Barnett    schedule 21.04.2011