It's working quite well for us. The persistent queue was the most
important aspect for me.
Hi Bill, thanks for your feedback. Did you also consider delayed_job?
It's a tie between the two of them.
I just read that github was using Bj, then moved on to dj and now runs
resque? I do understand that github size is different than mine so what
works for them might totally fail for me.
I did, though I cannot remember at the moment exactly what caused me
to pick Bj. I think it may have been the Engine Yard recommendation.
Then there's the fact that Ara wrote it and he's well regarded in the
Ruby community. Or maybe it was that I though a Bj sounded like more
fun than a delayed_job
Something you might also consider is Nanite, we’re using it in our flagship product and it’s great. It has the persisent queue you are looking for and is self healing also. It uses RabbitMQ as the messaging system.
We use it for sending mails in the background (high volumes) across several applications running on the same server. Our agents (i.e. workers) are very small pure Ruby applications designed for one specific goal, in this case sending mails (with a few additional quirks such as automatically extracting images and attaching them and making all css styles inline, PDF generation and attaching etc).
We’ve used the other solutions you mentioned in the past, but they all had their drawbacks. Once we switched to Nanite, we never looked back. About 20 apps are using the same agents, the memory footprint is just so much smaller, the self healing cluster is great, we can add or remove agents as we see fit without any app restart.
In terms of implementing it, it’s a bit more of “getting your head around it” though.
Peter De Berdt