Я использую несколько серверов heroku, которые используют одну и ту же БД. Я хотел бы, чтобы каждый сервер обрабатывал отложенные задания только для сервера, который создал запись отложенного задания.
Например:
Сервер A обрабатывает только очередь "server_a"
Сервер A обрабатывает только очередь "server_b"
и т.д...
Это достигается с помощью Delayed Job 3 (https://github.com/collectiveidea/delayed_job).
Однако, чтобы это работало, мне нужно вручную назначить имя очереди для каждого созданного отложенного задания, что может быть проблемой. (например: object.delay(:queue => 'tracking').method)
Вместо этого я хотел бы иметь возможность назначать «очередь по умолчанию» для всех новых заданий. В идеале я помещаю что-то вроде этого в delayed_job_config.rb, и это работает:
DEFAULT_QUEUE_NAME = ENV['APP_NAME']
... идея в том, что я ничего не делаю с существующими отложенными заданиями, и им автоматически назначается очередь с тем же именем, что и у сервера приложений.
Я ищу предложения о том, как это сделать, или, если вы хотите попробовать, киньте мне код.
Заранее спасибо!