1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- import os
- import fastwsgi
- try:
- from ujson import dumps as jsonify
- except:
- from json import dumps as jsonify
- def app(environ, start_response):
- path = environ["PATH_INFO"]
- headers = [ ('Server', 'FastWSGI') ]
-
- if path == "/json":
- headers.append( ('Content-Type', 'application/json') )
- start_response('200 OK', headers)
- return [ jsonify( {"message":"Hello, World!"} ).encode('utf8') ]
- if path == "/plaintext":
- headers.append( ('Content-Type', 'text/plain') )
- start_response('200 OK', headers)
- return [ b'Hello, World!' ]
- start_response('400 Bad Request', headers)
- return [ b'' ]
- if __name__ == "__main__":
- import multiprocessing
- _is_travis = os.environ.get('TRAVIS') == 'true'
- workers = int(multiprocessing.cpu_count())
- if _is_travis:
- workers = 2
- host = '0.0.0.0'
- port = 3000
- def run_app():
- fastwsgi.run(app, host, port, loglevel=0)
- def create_fork():
- n = os.fork()
- # n greater than 0 means parent process
- if not n > 0:
- run_app()
- # fork limiting the cpu count - 1
- for i in range(1, workers):
- create_fork()
- run_app() # run app on the main process too :)
|