rabbitmq - How to use listen on basic.return in python client of AMQP -
I have to make sure that my message was given in a row
to do this Adding basic_publish to the mandatory Ultimate. If my message has not been delivered successfully, then what do I need to do to get the basic.return
message?
I listen to channel.wait ()
basic.return
because when my message is successfully delivered wait () < / Code> function is hanging forever (no timeout) On the other hand when I do not call
channel.wait ()
, then channel.returned_messages
will be empty , Even if the message is not delivered. Use
I py-amqplib
version 0.6.
Any solutions are welcome.
This is currently impossible because the basic.return
is sent asynchronous When a message is dropped in the broker. When the message was successfully sent, no data has been reported from the server. Therefore PAMAMPP can not hear for such messages.
I have read some threads about this problem. The possible solutions were:
- Use the txAMQP, twisted version of amqp which handles the basic.
- Use PAMAMPP with a waiting timeout. (I'm not sure that it is currently possible)
- Ping servers often with synchronous commands so that pyAMQP can be enabled when the
basic.return
message arrives.
Because the level of support for PYQP and Rabbit MQ in general is very low, we have decided not to use the AMPP broker at all.
Comments
Post a Comment