Skip to content

Instantly share code, notes, and snippets.

@creotiv
Created September 14, 2011 21:34
Show Gist options
  • Star 10 You must be signed in to star a gist
  • Fork 6 You must be signed in to fork a gist
  • Save creotiv/1217855 to your computer and use it in GitHub Desktop.
Save creotiv/1217855 to your computer and use it in GitHub Desktop.
Multicore gevent wsgi server
import sys
from gevent import server
from gevent.baseserver import _tcp_listener
from gevent import pywsgi
from gevent.monkey import patch_all; patch_all()
from multiprocessing import Process, current_process, cpu_count
def hello_world(env, start_response):
if env['PATH_INFO'] == '/':
start_response('200 OK', [('Content-Type', 'text/html')])
return ["<b>hello world</b>"]
else:
start_response('404 Not Found', [('Content-Type', 'text/html')])
return ['<h1>Not Found</h1>']
listener = _tcp_listener(('127.0.0.1', 8001))
def serve_forever(listener):
pywsgi.WSGIServer(listener, hello_world).serve_forever()
number_of_processes = 5
print 'Starting %s processes' % number_of_processes
for i in range(number_of_processes):
Process(target=serve_forever, args=(listener,)).start()
serve_forever(listener)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment