[rabbitmq-discuss] Published message not queued after publish-ok received when connection quickly closed
Simon MacMullen
simon at rabbitmq.com
Fri May 6 10:43:19 BST 2011
Hi Elias.
On 05/05/11 22:33, Elias Levy wrote:
> While writing some code using the Ruby AMQP gem against RabbitMQ, I've
> noticed that if I publish a message and quickly close the connection,
> even though I've received a publish-ok response from the server, the
> message fails to be queued by the broker.
I'm not at all familiar with the Ruby client, but I should point out
that unlike many of the other AMQP methods, basic.publish does not have
a corresponding basic.publish-ok method; it's always asynchronous. So I
imagine the post-publish callback fires immediately.
In order to be able to know when the broker has taken responsibility for
a message you can either wrap the publish in a transaction (when you see
tx.commit-ok you know the server has the message) or use the rather more
lightweight publish confirms:
http://www.rabbitmq.com/blog/2011/02/10/introducing-publisher-confirms/
...but I'm not sure if they are supported by the Ruby gem yet (Jakub,
can you comment?)
Cheers, Simon
--
Simon MacMullen
Staff Engineer, RabbitMQ
SpringSource, a division of VMware
More information about the rabbitmq-discuss
mailing list