<div dir="ltr"><br><div class="gmail_extra"><div class="gmail_quote">On Thu, Sep 5, 2013 at 11:06 PM, Haster <span dir="ltr"><<a href="mailto:haster2004@yandex.ru" target="_blank">haster2004@yandex.ru</a>></span> wrote:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
I set no-ack to 0 in basic.consume, so I suggest that server will wait for<br>
basic.ack from client on each message. </blockquote><div><br></div><div>Yes, if no-ack is set to 0, the broker won't consider the message delivered until you acknowledge it. By default the broker does not pause sending messages if there are outstanding unacknowledged messages. You can tune this by using basic.qos to set a message prefetch on the channel, this will limit the number of unacknowledged messages on a channel before the broker will pause and wait for the client to acknowledge a message.</div>
<div><br></div><div>If no-ack is set to 1, the broker considers the message acknowledged as soon as it leaves the broker, and basic.qos will have no effect consumers declared with this set.</div><div><br></div><div>You can acknowledge a single message with basic.ack (amqp_basic_ack()), or all messages up to a message by setting the multiple flag when doing a basic.ack.</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"></blockquote></div><br></div><div class="gmail_extra">
-Alan</div></div>