Skip to main content

Robust WSGI auto-reloading for development.

Project description

Replacement for ‘paster serve –reload config.ini’.

Reload a WSGI application on source change. Keep the old code alive when the change has syntax errors. Never close the socket, never refuse a connection.

As of version 0.3, ReloadWSGI also supports reloading a server specified in the config file. This is appropriate for wsgi servers such as mongrel2_wsgi which are able to support two concurrent instances without stepping on each other’s network connection. Once ReloadWSGI confirms the second server can load without throwing e.g. a syntax error, the original server quits and Mongrel2’s automatic load balancing sends requests to the newer instance.

PID 4197 notifies us of a change in quux.py

quux.py changed; reloading...
{'status': 'changed', 'pid': 4197}

Oh no! We accidentally typed “foobar” instead of “import foobar”!

Process Process-4:
Traceback (most recent call last):
 ...
  File "quux.py", line 6, in <module>
    foobar
NameError: name 'foobar' is not defined

Can we visit our site? YES!:

127.0.0.1 - - [03/Mar/2010 09:41:52] "GET /orders HTTP/1.1" 200 2345

PID 4197 notifies us of /another/ change in quux.py

quux.py changed; reloading...
{'status': 'changed', 'pid': 4197}

We’ve fixed our problem. Once the new process loads, the old process quits silently

09:42:39,789 DEBUG [quux.run] App started.
{'status': 'loaded', 'pid': 4354}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for ReloadWSGI, version 0.3
Filename, size File type Python version Upload date Hashes
Filename, size ReloadWSGI-0.3.tar.gz (3.8 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page