skip to navigation
skip to content

Not Logged In

rainbow-saddle 0.2

A wrapper around gunicorn to handle graceful restarts correctly

Rainbow Saddle

rainbow-saddle is a wrapper around Gunicorn to simplify code reloading without dropping requests.

Installation

Install from pypi:

$ sudo pip install rainbow-saddle

Or from source:

$ sudo ./setup.py install

Why?

Sometimes doing a kill -HUP <gunicorn PID> is not sufficient to reload your code. For example it doesn’t work well if you host your code behind a symlink, or if a .pth in your installation is updated to point to a different directory.

The correct way to reload code in such situations is a bit complicated:

# Reexec a new master with new workers
/bin/kill -s USR2 `cat "$PID"`
# Graceful stop old workers
/bin/kill -s WINCH `cat "$PIDOLD"`
# Graceful stop old master
/bin/kill -s QUIT `cat "$PIDOLD"`

It also has the downside of changing the “master” process PID, which confuses tools such as supervisord.

rainbow-saddle handles all of this for you, and never changes its PID. Reloading code becomes as simple as sending a SIGHUP again:

$ rainbow-saddle --pid /tmp/mysite.pid gunicorn_paster development.ini --log-level debug
$ kill -HUP `cat /tmp/mysite.pid`

News

0.2a1

Release date: UNRELEASED

  • Example news entry for the in-development version

0.1

Release date: 15-Mar-2010

  • Example news entry for a released version
 
File Type Py Version Uploaded on Size
rainbow-saddle-0.2.tar.gz (md5) Source 2014-06-25 3KB
  • Downloads (All Versions):
  • 17 downloads in the last day
  • 49 downloads in the last week
  • 221 downloads in the last month