The problem in my view is those tooth floss like strings. They're worse with peanut butter. If one could figure out celery without those terrible strings I'd happily reconsider my opinion on celery.
Celery has so many issues and this outlines just a few of them. I was working on celery for a while on one of my personal projects and it's just absolutely insane what you have to do to get it working with django. It's so incredibly over engineered nad powered by magic.
I think Celery is doing itself a disservice by supporting so many brokers and result stores with different behaviors about delivery guarantee, leading to leaky abstraction everywhere.
There should be a distinction between a work queue and a job scheduler. The work queue dispatches jobs but doesn't know enough to retry them while the scheduler decides what to retry.
In Rails land, I would opt for Backburner over the commercial choices because it uses beanstalkd. For anything requiring HA, I would look at some sort of queue using an ESB as a transport. Short of HA, shard for LB.
Steve, this is such a great piece of knowledge! I see you mention lack of monitoring solutions, I'm creating a Celery monitoring tool at the moment, it's already a working/useful MVP, I'd love to get your opinion on it, is there any way to connect?