[rabbitmq-discuss] publisher confirmations

bergundy roey.berman at gmail.com
Sun Nov 27 15:20:11 GMT 2011

Hi everyone,

I couldn't find code for implementing publisher confirmations.

I wrote this piece of code using pika 0.9.5 (python client).
Would like to get feedback on this, I hope I got it right ...

class ConfirmingProducer(object):
    def __init__(self, channel):
        self.delivery_tag = 1
        self.acked        = 0
        self._callbacks   = {}
        self.chan = channel

    def publish(self, message, callback, **kwargs):
        self._callbacks[self.delivery_tag] = callback
        self.delivery_tag += 1
        self.chan.basic_publish(message, **kwargs)

    def on_delivered(self, frame):
        success = isinstance(frame.method, pika.spec.Basic.Ack)

        if frame.method.multiple:
            for dtag in range(self.acked+1, frame.method.delivery_tag
            self.acked = frame.method.delivery_tag
            self.acked += 1

More information about the rabbitmq-discuss mailing list