2015-12-24 3 views
2

У меня два приложения Rails, работающих на двух разных экземплярах (скажем, Server1 и Server2), но они имеют одинаковые коды и имеют одну и ту же базу данных Postgresql.Как серверный процесс Sidekiq выводит задания из очереди в Redis?

Я установил Sidekiq и задал задания в очереди с обоих серверов, но я запускаю процесс Sidekiq только в Server1.

У меня есть один сервер Redis и его запуск на сервере Server1, который разделяет Redis с Server2.

Если задание, отправленное с сервера Server2, оно обрабатывается в процессе Sidekiq Server1 и его том, что я действительно хотел.

Мой вопрос

  • Как процесс Sidekiq на Server1 знает, что работа выталкивается в Redis?

  • Должен ли процесс Sidekiq постоянно проверять сервер Redis на любые новые задания или сервер Redis указывает на процесс Sidekiq о новом задании?

Я смутился и изумлялся об этом !!!

Не могли бы вы прояснить процесс Sidekiq, чтобы получить работу с сервера Redis?

Это будет полезно для новичков вроде меня.

ответ

2

Sidekiq uses Команда redis по имени BRPOP.

Эта команда получает элемент из списка (который является вашей очередью заданий). И если список пуст, он ждет появления элемента, а затем всплывает/возвращает его. Это также работает с несколькими очередями одновременно.

Так нет, sidekiq не проводит опрос redis и redis не толкает уведомления на sidekiq.

+0

есть ли какая-либо команда в консоли rails для sidekiq-сервера, которая может использоваться для получения задания из очереди? –

Смежные вопросы