Parece que cuanto más tiempo tengo mi servidor rabbitmq funcionando, más problemas tengo con los mensajes no confirmados. Me encantaría ponerlos nuevamente. De hecho, parece que hay un comando amqp para hacer esto, pero solo se aplica al canal que usa su conexión. Construí un pequeño script pika a al menos probarlo, pero cualquiera que me falta algo o que no se puede hacer de esta manera (¿qué tal con rabbitmqctl?)¿Cómo puedo recuperar mensajes AMQP no reconocidos de otros canales que no sean los de mi conexión?
import pika
credentials = pika.PlainCredentials('***', '***')
parameters = pika.ConnectionParameters(host='localhost',port=5672,\
credentials=credentials, virtual_host='***')
def handle_delivery(body):
"""Called when we receive a message from RabbitMQ"""
print body
def on_connected(connection):
"""Called when we are fully connected to RabbitMQ"""
connection.channel(on_channel_open)
def on_channel_open(new_channel):
"""Called when our channel has opened"""
global channel
channel = new_channel
channel.basic_recover(callback=handle_delivery,requeue=True)
try:
connection = pika.SelectConnection(parameters=parameters,\
on_open_callback=on_connected)
# Loop so we can communicate with RabbitMQ
connection.ioloop.start()
except KeyboardInterrupt:
# Gracefully close the connection
connection.close()
# Loop until we're fully closed, will stop on its own
connection.ioloop.start()
¿Ha sido capaz de resolver esto? – 13hsoj
https://stackoverflow.com/questions/8296201/when-does-an-amqp-rabbitmq-channel-with-no-connections -die SO la respuesta tiene potencialmente lo que se necesita dependiendo de por qué usted tiene otros canales todavía dando vueltas con mensajes no contestados. Zombie channels No dup, ya que este tema trata de mensajes en otros canales, y no en los canales en sí. –