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.

Source Distribution

ReloadWSGI-0.3.tar.gz (3.8 kB view details)

Uploaded Source

File details

Details for the file ReloadWSGI-0.3.tar.gz.

File metadata

  • Download URL: ReloadWSGI-0.3.tar.gz
  • Upload date:
  • Size: 3.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for ReloadWSGI-0.3.tar.gz
Algorithm Hash digest
SHA256 79a1bf40ae54bb817f9f9746ef0b562c9cdb44366a831df5ab3f68e02c9b3f0f
MD5 b42dc369ff834f23bda19d5a0349bdf5
BLAKE2b-256 76bde094f3cf548b6d75a1ad992a1cf656f081904666446c6ca30f13697cf98b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page