That said. There are some advantages when using SimpleWorker such as the web interface, scheduling recurring jobs, and other useful options. Especially when you aren't running on Heroku, and memory is an issue if you have a small VPS. In that case, offloading background jobs to SimpleWorker is ideal. But I find that HireFire will make Heroku Workers cheaper than SimpleWorker due to the fact that jobs appear to take (a lot) longer to finish on SimpleWorker than on Heroku (probably due to the start up time? I'm not sure why).
I wrote a similar gem back in January and have had good luck with it: https://github.com/freerobby/middle_management
It's fully configurable via environment variables, so you can make changes without redeploying. It also lets you specify a minimum number of workers (even if there are zero jobs) so that you don't have to wait for workers to spin up if you don't want to.
Thanks for your input!
MiddleManagement works great for my needs, but if these libraries serve the same use case(s), I'd rather converge towards one library than have things spread out.
One other thing you may want to add is a retry loop for the heroku API calls. Every now and then, the heroku gem will throw a RestClient::ServiceUnavailable: 503 Service Unavailable exception. In the worst case, I'm not sure if this is best handled in the gem or at the application layer; however it's definitely worth retrying a couple times if you can avoid the blowup completely. I got some feedback from the Boston.rb group on handling this if you're interested: http://groups.google.com/group/boston-rubygroup/browse_threa...
One thing this really shows the need for is a real api on heroku. Having to hardcode your username/pass into env variables is pretty ghetto. Hopefully heroku devs are watching and listening. Oauth plz??
Ha! And yeah, the ENV variables. :)
The best I've found so far is: http://trevorturk.com/2011/01/21/delayed_job_admin-a-simple-...
https://github.com/meskyanichi/hirefire/blob/develop/lib/hir...
Also, as far as I know that DJ Admin Interface is the only one for DJ that currently exists. If you want to use Resque, I'll be implementing Resque for HireFire soon.