08 November 2012
I use heroku all the time. I don’t need to bother with sysadmin stuff. But mainly because it’s free :) Free is limited to one dyno, and to whatever free add-ons that you want to use, but that is good enough most of the times.
Except this time, it’s not good enough. I need to run delay jobs, and that would require another dyno for the worker. That will cost roughly $34.50 a month. Quite a lot for a simple fun not-for-profit project. I could potentially use other queues add-ons with pay per use costing, but I don’t feel like changing the app.
So what I did instead is, to start another Heroku app with one worker only. No web dyno. Then all I need to do is change the DATABASE_URL to be the same as my current web app.
Now I’ll have to deploy to both app. Something like this should do it
Heroku will spin down idle web dyno. Worker dyno should be up all the time. I didn’t specifically test this out, but from https://devcenter.heroku.com/articles/dynos#dyno-idling it only talks about web dyno. And so far all my jobs are completed.