rabbitmq, python - пример пользовательской программы ack - PullRequest
0 голосов
/ 07 июня 2019

Я ищу базовую потребительскую программу Rabbitmq ack на python.Пока что у меня есть основная программа для продюсеров.Но я не знаю, правильно ли это.

produkr.>python consumer.py [*] Waiting for messages. To exit press CTRL+C [x] Received b'Hello World!' >python producer.py Message Lost [x] Sent 'Hello World!' Вывод:

Though the message is received at the consumer.py program, the delivery 
note at producer.py says, "Message Lost", but the note should be "Message Acknowledged". 

Какова правильная программа подтверждения для потребителя и производителя на python для rabbitmq?

1 Ответ

0 голосов
/ 10 июня 2019

После нескольких дней исследований, чтобы получить желаемый результат, я наконец-то нашел это по ссылке - Руководство RabbitMQ ACK на клиенте c #

Ответ @Evk, ".BasicAcks - это подтверждение издателя, а не подтверждение получения от получателя. Таким образом, вы публикуете сообщение для брокера, и брокер (таким образом, сам RabbitMQ) будет получать или отклонять (отрицательное подтверждение), когда обрабатывает это сообщение (например, когда оно будетзапишите это на диск для постоянных сообщений, или когда in помещает это в очередь.) Обратите внимание, что никакой получатель здесь не вовлечен - это полностью между издателем и RabbitMQ.

Теперь, когда вы подтверждаете сообщение в получателе - это снова только междуПолучатель и RabbitMQ - вы сообщаете кролику, что сообщение обработано и может быть безопасно удалено. Это делается для обработки ситуаций, когда во время обработки происходит сбой получателя - тогда кролик сможет доставить это сообщение следующему получателю (если есть).

Обратите внимание, что вся цель такой архитектуры состоит в том, чтобы отделить издателей иivers - они не должны зависеть друг от друга.

Если у вас есть один получатель (их может быть много) и вы хотите, чтобы он обработал ваше сообщение - используйте шаблон RPC: отправьте сообщение и дождитесь другого сообщения обратноот этого приемника. "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...