How do you run multiple DelayedJob workers on a single Heroku dyno?
Try changing your Procfile to:
worker: bundle exec script/delayed_job -n 3 run
Using start
will create two daemons in the background and then immediately exit. Heroku thinks that your process crashed.
Using run
keeps the workers in the foreground.
UPDATE: I use Delayed Job Worker Pool for this now.
You can use foreman to start multiple processes on the same dyno.
First, add foreman to your Gemfile.
Then add a worker
line to your Procfile:
worker: bundle exec foreman start -f Procfile.workers
Create a new file called Procfile.workers which contains:
dj_worker: bundle exec rake jobs:work
dj_worker: bundle exec rake jobs:work
dj_worker: bundle exec rake jobs:work
That will start 3 delayed_job workers on your worker dyno.