Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does heroku restart NodeJS server if application crashes

Tags:

node.js

heroku

We are running NodeJS server on Heroku. we want to know whether heroku will restart the application if application crashes. Also will there any different behavior between free version and paid version?

like image 908
Fizer Khan Avatar asked Oct 09 '13 07:10

Fizer Khan


People also ask

Does heroku auto restart on crash?

In the normal case of a long-running web or worker process getting an occasional crash, the dyno will be restarted without any intervention on your part. If a dyno crashes multiple times in a row, it will be restarted with exponentially increasing cool-off periods.

Does heroku restart?

TIP By default heroku restart will restart all of your dynos, but you can specify a specific dyno to restart (e.g. heroku ps:restart web. 1 ), or all dynos of a specific type (e.g. heroku ps:restart web ).

How do I restart heroku node js app?

If you have the Heroku CLI installed, you can run heroku restart in the folder of your application or run heroku restart --app application_name .

How do I restart node server automatically?

Running non-Node code While Nodemon is running, we can manually restart our application. So instead of stopping and restarting Nodemon, we can just type rs and press enter, and Nodemon will restart the server or the running process for us.


1 Answers

It will. For several times, and then "cool off" for ten minutes and try again. From the docs:

Heroku’s dyno restart policy is to try to restart crashed dynos by spawning new dynos once every ten minutes. This means that if you push bad code that prevents your app from booting, your app dynos will be started once, then restarted, then get a cool-off of ten minutes. In the normal case of a long-running web or worker process getting an occasional crash, the dyno will be restarted instantly without any intervention on your part. If your dyno crashes twice in a row, it will stay down for ten minutes before the system retries.

The docs: https://devcenter.heroku.com/articles/dynos#automatic-dyno-restarts

EDIT Regarding free dynos: the restart behavior is the same. However, there is something called "Dyno Idling" which happens only in free dynos. Basically it means that if your dyno does not receive any request for 1 hour it will "go to sleep", and the next request will "wake it up", which will cause that next request to be slightly delayed. This happens only when you have 1 free web dyno for your app.

To circumvent that, either have 2 dynos (and then none of them will idle, but you will be paying for one), or have "something" poll your web dyno every (say) 30 minutes. Like pingdom, say.

The docs: https://devcenter.heroku.com/articles/dynos#automatic-dyno-restarts

like image 57
Nitzan Shaked Avatar answered Sep 23 '22 13:09

Nitzan Shaked