<div dir="ltr">If you know the clients ahead of time you can set up a queue per client instead of a single consolidated queue.<div><div><br></div><div>Then subscribe to each queue from each worker (or a subset of workers) with prefetch = 1 using ack.</div>
</div><div><br></div><div>Michael</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Oct 20, 2013 at 8:36 PM, Dan Larkin <span dir="ltr"><<a href="mailto:dan@danlarkin.org" target="_blank">dan@danlarkin.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi all,<br>
<br>
I have an interesting serialization requirement for my app: I need to enforce that only one message with the same AMQP header "client" is ever out for delivery in any given snapshot of time.<br>
<br>
Right now I have messages flowing into rabbit to a "direct" exchange, all with "client" headers. And since I have multiple worker nodes pulling from the queue they're ending up in, it's possible for two messages with the same "client" header to be processed at the same time. And the goal here is to prevent that from happening.<br>
<br>
I thought at first this might be possible with a custom exchange, but afaict exchanges are basically limited to controlling how messages get routed, not how they get delivered.<br>
<br>
So my question is simply: is this behavior possible?<br>
<br>
Thanks for your help,<br>
Dan<br>
<br>_______________________________________________<br>
rabbitmq-discuss mailing list<br>
<a href="mailto:rabbitmq-discuss@lists.rabbitmq.com">rabbitmq-discuss@lists.rabbitmq.com</a><br>
<a href="https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss" target="_blank">https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss</a><br>
<br></blockquote></div><br></div>