rabbitmqctl eval '{ok, Q} = rabbit_amqqueue:lookup({resource, <<"/">>, queue, <<"delete-me">>}), Pid = erlang:element(7, Q), exit(Pid, please_crash).'
> And even if I kill the queue process, the message will still be
> delivered to the exchange and I will receive Ack again from the
> broker.
Exchanges deliver messages to queues, not the other way around.
From
http://www.rabbitmq.com/confirms.html:
«For routable messages, the basic.ack is sent when a message has been accepted by all the queues.»
If a queue process terminates under a constant stream of messages
and has to be re-started (which happens very quickly but
still not immediately), you should get a nack.
--
MK
Staff Software Engineer, Pivotal/RabbitMQ