Может ли кто-нибудь дать мне ясность о преимуществах использования RabbitMQ (очередь сообщений) вместо отложенного задания (фоновая обработка)?
В основном я хочу знать, когда использовать фоновую обработку и очередь сообщений?
Мое веб-приложение имеет 3 компонента: один главный сервер, который будет обрабатывать все запросы пользователей, и 2 сервера приложений, на которых должны выполняться все фоновые задания (такие как es reindex, обновление записей es, отправка электронных писем, crons).
Я видел статьи, в которых говорится, что База данных как очередь (отложенное задание) очень плохая, так как потребители будут опрашивать базу данных на предмет новых заданий и обновлять статусы заданий, что приведет к блокировке таблиц.Тогда как Rabbit MQ или другие очереди сообщений хранятся, чтобы избежать этой проблемы.
Существуют и другие альтернативы для отложенной работы, например, sidekiq, который будет работать поверх redis вместо mysql.Лучше использовать sidekiq вместо rabbitmq?
И есть ли преимущества использования sidekiq по сравнению с отложенной работой?