<div dir="ltr">I have updated the pull request. I jumped the gun a bit in thinking that I had solved this with the initial pull. I still may not have resolved it in a way that would make sense to devs who know the code base better than I do. I wasn't sure if there were a better way to remove bindings from an expiring queue and its DLX, so I'm removing them first from the destination using rabbit_binding:remove_for_destination and then calling the exchanges remove_bindings. The latter call is necessary because with out it, a consistent hash exchange will retain invalid routes and continue to try and route messages to the expired queue.<div>
<br></div><div>Let me know what you think. If there are things I can do to improve it well enough for consideration, I am happy to do them. I also don't expect I'd have any problems signing a CLA if you're interested in the PR. I understand there could be performance implications if one allows a queue to grow to a massive number of messages and then expires the queue, however, as I mention in the PR, I can recreate a similar scenario with DLXs and message TTLs. I think with this kind of system, there's some caveat emptor in how one manages things like queue depth. In our scenario, the only real reason for a queue's depth to get large is when a consumer bites the dust. Having a short TTL on a queue would actually allow us to expire the queue quickly to prevent an explosion of messages that suddenly have no consumer (and may never have again).</div>
<div><br></div><div>If the performance considerations make this too rubbishy for inclusion, let me know. Willing to help out any way I can but also just as willing to step back and let the pros handle it.</div><div><br></div>
<div>Thanks,</div><div>Alex</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Jan 16, 2014 at 5:25 AM, Michael Klishin <span dir="ltr"><<a href="mailto:mklishin@gopivotal.com" target="_blank">mklishin@gopivotal.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im"><br>
On 16 Jan 2014, at 14:56, Simon MacMullen <<a href="mailto:simon@rabbitmq.com">simon@rabbitmq.com</a>> wrote:<br>
<br>
> If you want to send us a PR then that's great, but please be aware that a) you'd need to sign a contributor agreement and b) it might be harder than you think. But c) it might not :-)<br>
<br>
</div>FTR:<br>
<a href="https://github.com/rabbitmq/rabbitmq-server/pull/29/files" target="_blank">https://github.com/rabbitmq/rabbitmq-server/pull/29/files</a><br>
<br>
MK<br>
<br>
Software Engineer, Pivotal/RabbitMQ<br>
<br>
<br>
</blockquote></div><br></div>