CARVIEW |
Select Language
HTTP/2 200
server: nginx
date: Mon, 25 Aug 2025 11:16:40 GMT
content-type: text/html; charset=utf-8
x-archive-orig-server: nginx/0.7.61
x-archive-orig-date: Sun, 24 Jan 2010 00:41:14 GMT
x-archive-orig-connection: close
x-archive-orig-status: 200 OK
x-archive-orig-etag: "7ad300abef07499ae98b5995661ab466"
x-archive-orig-x-runtime: 148ms
x-archive-orig-content-length: 31192
x-archive-orig-cache-control: private, max-age=0, must-revalidate
x-archive-guessed-content-type: text/html
x-archive-guessed-charset: utf-8
memento-datetime: Sun, 24 Jan 2010 00:41:14 GMT
link: ; rel="original", ; rel="timemap"; type="application/link-format", ; rel="timegate", ; rel="first memento"; datetime="Sun, 24 Jan 2010 00:41:14 GMT", ; rel="memento"; datetime="Sun, 24 Jan 2010 00:41:14 GMT", ; rel="next memento"; datetime="Sun, 31 Jan 2010 12:30:00 GMT", ; rel="last memento"; datetime="Sun, 03 Dec 2023 12:17:47 GMT"
content-security-policy: default-src 'self' 'unsafe-eval' 'unsafe-inline' data: blob: archive.org web.archive.org web-static.archive.org wayback-api.archive.org athena.archive.org analytics.archive.org pragma.archivelab.org wwwb-events.archive.org
x-archive-src: 52_13_20100123235742_crawl101-c/52_13_20100124003437_crawl101.arc.gz
server-timing: captures_list;dur=0.548856, exclusion.robots;dur=0.019191, exclusion.robots.policy;dur=0.007724, esindex;dur=0.009688, cdx.remote;dur=15.378373, LoadShardBlock;dur=213.428419, PetaboxLoader3.datanode;dur=178.337259, load_resource;dur=246.196248, PetaboxLoader3.resolve;dur=115.401734
x-app-server: wwwb-app211
x-ts: 200
x-tr: 530
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
set-cookie: wb-p-SERVER=wwwb-app211; path=/
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
content-encoding: gzip
rtyler's Spawning at master - GitHub
This service is courtesy of Pledgie.
rtyler / Spawning
- Source
- Commits
- Network (2)
- Issues (0)
- Downloads (0)
- Wiki (1)
- Graphs
-
Branch:
master
-
Branches (1)
- master ✓
- Tags (0)
Sending Request…
Enable Donations
Pledgie Donations
Once activated, we'll place the following badge in your repository's detail box:
Spawning is a wsgi server which supports multiple processes, multiple threads, green threads, non-blocking HTTP io, and automatic graceful upgrading of code. (fork from Bitbucket) — Read more
Spawning /
name | age | message | |
---|---|---|---|
![]() |
.gitignore | Tue Jan 12 22:58:42 -0800 2010 | Add ignore [rtyler] |
![]() |
.hgignore | Mon Jan 05 16:26:05 -0800 2009 | Add an option to limit the amount of memory spa... [donovan@ell-ee-dee.local] |
![]() |
LICENSE.txt | Mon Jun 16 19:00:02 -0700 2008 | Initial commit [donovan@ell-ee-dee.local] |
![]() |
Manifest.in | Wed Sep 23 11:34:55 -0700 2009 | Typofix rc-script to rc-scripts. [Ludvig Ericson] |
![]() |
NEWS.txt | Fri Oct 16 11:27:09 -0700 2009 | news entry file for schmir's patch [donovan@bigass.local] |
![]() |
README.md | Tue Jan 12 23:00:13 -0800 2010 | Add symbolic link to README for github's benefit [rtyler] |
![]() |
README.txt | Fri Oct 09 22:03:01 -0700 2009 | Move the docs out of setup.py into README.txt a... [donovan@bigass.local] |
![]() |
rc-scripts/ | Wed Sep 23 13:52:52 -0700 2009 | Clean up OpenRC init script. [Ludvig Ericson] |
![]() |
setup.cfg | Thu Jan 14 00:35:26 -0800 2010 | Add empty setup.cfg [rtyler] |
![]() |
setup.py | Wed Jan 20 11:40:26 -0800 2010 | Require eventlet 0.9.3 or greater (keepalive su... [rtyler] |
![]() |
src/ | Thu Jan 14 13:57:41 -0800 2010 | If we're disabling keepalive, also decrement th... [rtyler] |
README.txt
Spawning is a fast, easy to use, and flexible HTTP server for hosting python web applications which conform to the WSGI interface. Spawning uses eventlet to do non-blocking I/O for http requests and responses. This means the server will scale to a large number of idle keep-alive connections easily. Spawning can be configured to use multiple OS processes and either POSIX threads or eventlet's green threads, which are implemented using greenlet. Spawning is open source software, licensed under the MIT license. If you wish to contribute to development, please check out the source from https://bitbucket.org/fzzzy/spawning/ and either submit patches or fork spawning and submit a pull request. Single or Multiple Process ========================== If your wsgi applications store state in memory, Spawning can be configured to run only one Python process. In this configuration your application state will be available to all requests but your application will not be able to take full advantage of multiple processors. Using multiple processes will take advantage of all processors and thus should be used for applications which do not share state. Single or Multiple Worker Thread ================================================================ If your wsgi applications perform a certain subset of blocking calls which have been monkeypatched by eventlet to cooperate instead (such as operations in the socket module), you can configure each process to run only a single main thread and cooperate using eventlet's green threads instead. This can be useful if your application needs to scale to a large number of simultaneous open connections, such as a COMET server or an application which uses AJAX polling. However, most existing wsgi applications will probably perform blocking operations (for example, calling database adapter libraries which perform blocking socket operations). Therefore, for most wsgi applications a combination of multiple processes and multiple threads will be ideal. Graceful Code Reloading ======================= By default, Spawning watches all Python files that are imported into sys.modules for changes and performs a graceful reload on change. Old processes are told to stop accepting requests and finish any outstanding requests they are servicing, and shutdown. Meanwhile, new processes are started and begin accepting requests and servicing them with the new code. At no point will users of your site see "connection refused" errors because the server is continuously listening during reload. Running spawning ================ Spawning can be used to launch a wsgi application from the command line using the "spawn" script, or using Python Paste. To use with paste, specify use = egg:Spawning in the [server:main] section of a paste ini file. Spawning can also be used to run a Django application by using --factory=spawning.django_factory.config_factory. Examples of running spawning ============================ Run the wsgi application callable called "my_wsgi_application" inside the my_wsgi_module.py file:: % spawn my_wsgi_module.my_wsgi_application Run whatever is configured inside of the paste-style configuration file development.ini. Equivalent to using paster serve with an ini file configured to use Spawning as the server:: % spawn --factory=spawning.paste_factory.config_factory development.ini Run the Django app mysite:: % spawn --factory=spawning.django_factory.config_factory mysite.settings Run the wsgi application wrapped with some middleware. Pass as many middleware strings as desired after the wsgi application name:: % spawn my_wsgi_module.my_wsgi_application other_wsgi_module.some_wsgi_middleware Run the wsgi application on port 80, with 4 processes each using a threadpool of size 8:: % sudo spawn --port=80 --processes=4 --threads=8 my_wsgi_module.my_wsgi_application Use a threadpool of size 0, which indicates that eventlet monkeypatching should be performed and wsgi applications should all be called in the same thread. Useful for writing a comet-style application where a lot of requests are simply waiting on a server-side event or internal network io to complete:: % spawn --processes=4 --threads=0 my_wsgi_module.my_comet_application Additional Useful Arguments =========================== -l ACCESS_LOG_FILE, --access-log-file=ACCESS_LOG_FILE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The file to log access log lines to. If not given, log to stdout. Pass /dev/null to discard logs. -c, --coverage ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If given, gather coverage data from the running program and make the coverage report available from the /_coverage url. See the figleaf docs for more info: https://darcs.idyll.org/~t/projects/figleaf/doc/ -m MAX_MEMORY, --max-memory=MAX_MEMORY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If given, the maximum amount of memory this instance of Spawning is allowed to use. If all of the processes started by this Spawning controller use more than this amount of memory, send a SIGHUP to the controller to get the children to restart. -a MAX_AGE, --max-age=MAX_AGE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If given, the maximum amount of time (in seconds) an instance of spawning_child is allowed to run. Once this time limit has expired a SIGHUP will be sent to spawning_controller, causing it to restart all of the child processes.