socketify.py/bench/falcon_plaintext.py

31 wiersze
1.1 KiB
Python

from wsgiref.simple_server import make_server
import falcon
# check ./asgi_wsgi/falcon-ws-pubsub.py for pub/sub extension
class Home:
def on_get(self, req, resp):
resp.status = falcon.HTTP_200 # This is the default status
resp.content_type = falcon.MEDIA_TEXT # Default is JSON, so override
resp.text = "Hello, World!"
app = falcon.App()
home = Home()
app.add_route("/", home)
if __name__ == "__main__":
with make_server("", 8000, app) as httpd:
print("Serving on port 8000...")
# Serve until process is killed
httpd.serve_forever()
# pypy3 -m gunicorn falcon_plaintext:app -w 4 --worker-class=gevent #recommended for pypy3
# python3 -m gunicorn falcon_plaintext:app -w 4 #without Cython
# pypy3 -m gunicorn falcon_plaintext:app -w 4 #without gevent
# python3 -m gunicorn falcon_plaintext:app -w 4 --worker-class="egg:meinheld#gunicorn_worker" #with Cython
# meinheld is buggy -> greenlet.c:566:10: error: no member named 'use_tracing' in 'struct _ts'
# so using pip3 install git+https://github.com/idot/meinheld.git@2bfe452d6608c92688d92337c87b1dd6448f4ccb