Кто-нибудь знает, является ли операция pop в очереди RabbitMQ атомарной?
У меня есть несколько процессов, читающих из одной и той же очереди (очередь помечена как долговечная, работающая на версии 2.0.0), и я вижу довольно странное поведение.
Если несколько процессов потребляют сообщения из одной и той же очереди , то они никогда не должны использовать одно и то же сообщение.
Вот предостережения:
Если сообщение было доставлено брокером одному из ваших потребителей, и оно отклоняет сообщение (или завершает работу до получениявозможность подтвердить это), тогда брокер поставит его обратно в ту же очередь, и он будет доставлен одному из ваших оставшихся активных потребителей.
Если ваши потребители вытягивают из разных очередей -- каждый с соответствующей привязкой - тогда брокер помещает копии сообщения в каждую очередь, и каждый потребитель получает копию того же сообщения.