Skip to content
This repository has been archived by the owner on Sep 11, 2022. It is now read-only.

Publisher confirms high level API #92

Closed
botanicus opened this issue Jul 13, 2011 · 6 comments
Closed

Publisher confirms high level API #92

botanicus opened this issue Jul 13, 2011 · 6 comments
Assignees
Milestone

Comments

@botanicus
Copy link
Contributor

Recently RabbitMQ introduced publisher confirms, which is basically a faster alternative to transactions.

Using publisher confirms requires a lot of client code though, we should come up with something more high level, so it'd be easier for people to use.

Irrelevant note: it's bug 24229 on RabbitMQ bugzilla (not publicly visible).

I've opened the same issue for Bunny.

@ghost ghost assigned michaelklishin Jul 13, 2011
@michaelklishin
Copy link
Member

To make it clear to folks who come from Google search: RabbitMQ publishers confirmations support in the Ruby amqp gem has been around for a while now but there are some ideas about what can be added on top of that.

@eliaslevy
Copy link
Contributor

You may want to look at https://gist.github.com/3042381. Its a higher level blocking publish API that makes use of publisher confirms and handles channel errors, returned messages, and nacks.

@michaelklishin
Copy link
Member

@eliaslevy looks good. I think we will have AMQP::ConfirmingPublisher or something like that in 1.0. Thanks for sharing!

@carlhoerberg
Copy link
Contributor

nacks? does publisher confirm really support that? doesn't look like it: https://gist.github.com/53e7da8c696b4be92617

on_ack is called as soon as the message is deliviered, not when acked/nacked by the consumer.

@michaelklishin
Copy link
Member

@carlhoerberg it is not supposed to be called when it is acked/nacked by the consumer. Publisher confirms work only between a publisher and the broker. As soon as the broker considers a message routed "safely", it sends an ack.

@carlhoerberg
Copy link
Contributor

yeah, i found out, is there any way to detect nacks? with transactions? haven't found an example of transaction usage..

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants