Блокирующее соединение Rabbitmq для получения сообщений от RabbitMQ и использование блокирующего соединения для получения сообщения от RabbitMQ

Я довольно запутался между двумя методами работы с библиотекой rabbitmq's pika.

Первый — Блокировка потребления
Второй — Блокировка basic_get
Может ли кто-нибудь более подробно объяснить различия?

Есть ли разница в том, что блокировка потребления получает сообщения из очереди все время, если они отправляются, в то время как в basic_get мы можем больше контролировать, когда получать сообщения из очереди?


person JavaSa    schedule 23.09.2015    source источник


Ответы (1)


Да, вы правы.

базовый_получить()

С точки зрения RabbitMQ это операция pull. Вы можете получить сообщение, когда захотите, в своем коде. Другими словами, это последовательная операция. Вы получите сообщение, когда спросите. Затем после этого клиент не "автоматически" получает новые сообщения. Думайте об этом как об обычном вызове REST API.

bascic_consume()

С точки зрения RabbitMQ это операция push. Вы открываете канал к серверу и говорите RabbitMQ, что «эй, как только появится что-то новое, пришлите мне». Это очень мощная функция, которая дает вам гораздо более высокую производительность, позволяет вам контролировать количество сообщений, которые вы можете обрабатывать одновременно, и так далее.

person Vor    schedule 23.09.2015
comment
У меня есть еще один вопрос, и я подумал, может быть, вы можете мне помочь с ним. stackoverflow.com/questions/32799456/ - person JavaSa; 26.09.2015