Using Gearman For Distributed Alerts
tech.backtype.com
tech.backtype.com
We tested it at Justin.tv and managed to cause the main process (gearmand) to spin at 100%, stop accepting connections, and lots of other things. Not quite ready for production use, especially if you need persistence and use the memcached plugin.
Also, the python client library is in pretty rough form. Our developers submitted a patch or two, but it still doesn't reliably handle errors, network outages, failover, or reconnects. You probably want all of these things in your job server of choice.
I suppose Gearman is more of an RPC broker with sync and async modes than an MQ, but the differences are mostly semantic.
For simple RPC-style use (millions per day) though, our server has been stable (no change in memory or latency) for months without a restart.
What kinds of jobs were you submitting? I've also run into problems using the python client handling errors, failover, and reconnects. But no issues with the C API, processing about 5 million jobs a day.
We've since moved to the original Danga Perl daemon (rather than invest time switching message queues), and it's faster, uses less memory, and more stable.
Next step is to move to a different MQ. In our application we don't need persistence especially, so I'm thinking zeromq.
All that gearman buys them here is... a longer delay until the mail is actually sent.
Also, I _hate_ the idea of running an MTA on 30 machines that shouldn't be sending mail.
I don't share your concerns about the MTA (they are lightweight and it's usually helpful to know that sending mails won't block) but to each their own.