У меня есть задача, в которой я пытаюсь получить все сообщения в очереди кролика. Мне нужно только ПОЛУЧАТЬ, а не ПОТРЕБЛЯТЬ. Итак, вот код, который я использую
def some_function_name() :
connection = rabbitObj.get_connection()
channel = rabbitObj.get_channel(connection)
while True :
method_frame, header_frame, body = channel.basic_get(queue='error_queue', no_ack=False)
if method_frame:
#do some work
else :
break #breaking the loop
while(True):
some_function_name()
когда я запускаю этот код, он работает правильно, в первый раз. Я получаю все сообщения в очереди, и все сообщения остаются в состоянии «Готово», но когда я запускаю цикл во второй раз, все сообщения переходят в состояние «Неподтверждено».
Требование: каждый раз я должен получать только сообщения GET, и они не должны оставаться неподтвержденными.
Первый цикл:
Второй цикл:
Может ли кто-нибудь помочь мне, что я делаю неправильно, или какие изменения я должен внести.
Заранее спасибо :)
Изменить 1: Что касается ответа @BarrensZeppelin, все сообщения будут потеряны, если я установлю no_ack=True. Посмотрите на скриншот ниже: