Hi all,<br><br>I&#39;ve written up a blog post on an approach to getting similar functionality to Google AppEngine&#39;s Transactional Task Queue, using RabbitMQ:<br><br><a href="http://www.eighty-twenty.org/index.cgi/tech/rabbitmq/tasks-within-transactions-20111218.html">http://www.eighty-twenty.org/index.cgi/tech/rabbitmq/tasks-within-transactions-20111218.html</a><br>
<br>Here are the opening paragraphs:<br><br><blockquote style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote">In a discussion of moving from Google AppEngine to EC2, a participant mentioned that the only &quot;odd&quot; GAE service he made use of was transactional task queues, and that there was no direct analogue of this service in other queueing systems.<br>
<br>Here&#39;s one way of building a transactional task queue using RabbitMQ and your favourite SQL database.<br><ul><li>a table in the database will hold pending tasks</li><li>messages going through RabbitMQ will inform workers of the arrival of new tasks</li>
<li>the available tasks will be load-balanced between n workers</li><li>a &quot;cleaner&quot; process makes sure all tasks are eventually run and that failed tasks are eventually detected</li></ul>In this article, I&#39;ll spell out the requirements for the system, and discuss the details of the database tables, RabbitMQ queues, and daemon processes required. I&#39;ll then evaluate the solution presented in terms of the requirements, and conclude by discussing a few variations on the solution that might be worth exploring.<br>
</blockquote><br>Regards,<br>  Tony<br>-- <br>Tony Garnock-Jones<br><a href="mailto:tonygarnockjones@gmail.com">tonygarnockjones@gmail.com</a><br><a href="http://homepages.kcbbs.gen.nz/tonyg/">http://homepages.kcbbs.gen.nz/tonyg/</a><br>

<br>