tobius
tobius

Reputation: 855

multiple worker/web processes on a single heroku app

Is there some way to configure multiple worker and/or web processes to run in the single Heroku app container? Or does this have to be broken up into multiple Heroku apps?

For example:

worker: node capture.js
worker: node process.js
worker: node purge.js
web: node api.js
web: node web.js

Upvotes: 45

Views: 25489

Answers (1)

Yuval Adam
Yuval Adam

Reputation: 165192

All processes must have unique names. Additionally, the names web and worker are insignificant and carry no special meaning. The only process that carries a significant name is the web process, as stated in the Heroku docs:

The web process type is special as it’s the only process type that will receive HTTP traffic from Heroku’s routers. Other process types can be named arbitrarily. -- (https://devcenter.heroku.com/articles/procfile)

So you want a Procfile like so:

capture: node capture.js
process: node process.js
purge: node purge.js
api: node api.js
web: node web.js

You can then scale each process separately:

$ heroku ps:scale purge=4

Upvotes: 62

Related Questions