Greg
Greg

Reputation: 785

Does Phusion Passenger restart gracefully when I touch restart.txt

Will it finish serving all current requests before it restarts?

Upvotes: 7

Views: 4229

Answers (3)

kirlev
kirlev

Reputation: 700

From the documentation:

"If you use passenger-config restart-app or restart.txt or restart an application, then Passenger never drops any requests during the restart."

also:

"Before shutting down or restarting an application process, Passenger performs two > operations:

  1. It waits until existing requests routed to that process are finished. This way, existing requests will be finished gracefully.
  2. It aborts WebSocket connections. This is because WebSocket connections can stay open for an arbitrary amount of time and will block the shutdown/restart."

Upvotes: 0

hurikhan77
hurikhan77

Reputation: 5930

I'm under the impression that each passenger app instance dies AFTER processing a request instead of restarting BEFORE the next request when restart.txt is touched. So there's a latency of one request in each passenger worker. As the process quits and the app spawner just spawns a new instance, I would not call this "graceful".

This means that the next request to a single instance of your application will be answered by that version of the instance which then quits (after doing its work). Current running requests won't be killed.

Upvotes: 2

tal
tal

Reputation: 3433

Short answer : yes !

In fact, it will allow current request to finish, and serve new request with new version. I am trying to find reference to this, but can't find any for the moment.

Upvotes: 4

Related Questions