I have an app with 1 web dyno, 7 background queues, and 1 clock. I want to use the Heroku Standard 1x plan as it includes unlimited background workers (and the number of queues might increase further in the future). When I deploy my app, the procfile doesn't appear to provision the way I expected. Three dynos are shown, and it looks like I have to purchase an additional Standard 1x dyno for each worker/clock.
Procfile:
web: flask db upgrade; gunicorn webapp:app
worker: rq worker -u $REDIS_URL high default low
worker: rq worker -u $REDIS_URL r1
worker: rq worker -u $REDIS_URL r2
worker: rq worker -u $REDIS_URL bg1
worker: rq worker -u $REDIS_URL bg2
worker: rq worker -u $REDIS_URL bg3
worker: rq worker -u $REDIS_URL bg4
clock: python clock.py
Heroku shows 3 dynos:
- 1x web (enabled, scale:1, Standard 1x)
- 1x worker "bg4" (scale:0)
- 1x clock (scale:0)
How should I structure the Procfile to take advantage of the background workers included in the Standard 1x dyno?