Возможно, я глупо задаю вопрос, но перед тем, как продолжить работу, мне нужно окунуться в основные понятия.
Я обрабатываю несколько тысяч RSS-каналов, используя несколько рабочих узлов сельдерея и RabbitMQ node в качестве брокера. URL-адрес каждого фида записывается как сообщение в очереди. Работник просто считывает URL-адрес из очереди и начинает его обрабатывать. Я должен обеспечить, чтобы один RSS-канал не обрабатывался двумя рабочими одновременно.
Статья Обеспечение выполнения задачи выполняется только один за раз предлагает решение на основе Memcahced для блокировки фида при его обработке.
Но я пытаюсь понять, почему мне нужно использовать Memcached (или что-то еще), чтобы гарантировать, что сообщение в очереди RabbitMQ не будет потребляться несколькими рабочими одновременно. Есть ли какое-то изменение конфигурации в RabbitMQ (или Celery), которое я могу сделать для достижения этой цели?