zwsgi provides the power of rich ZeroMQ messaging library to your existing WSGI applications. It changes the underlying transport layer from HTTP to ZHTTP. It is built on top of [pyzmq] (https://github.com/zeromq/pyzmq "pyzmq") bindings and can be configured to use threads, greenlets or processes to handle incoming requests.
zwsgi can be used to realize advanced ZeroMQ patterns like [Majordomo Protocol] (http://rfc.zeromq.org/spec:7 "MDP"), where workers are zwsgi applications that connect to a broker. It can be used as a building block to design application architectures based on microservices.
from flask import Flask
from zwsgi.servers import ZMQRouterDealerServer as WSGIServer
app = Flask(__name__)
@app.route('/ping')
def hello_world():
return 'Hello World!'
server = WSGIServer(('127.0.0.1', 7000), app)
server.serve_forever()
from flask import Flask
from zwsgi import monkey
monkey.patch_all()
from zwsgi.servers import ZMQRouterDealerServer as WSGIServer
app = Flask(__name__)
@app.route('/ping')
def hello_world():
return 'Hello World!'
server = WSGIServer(('127.0.0.1', 7000), app)
server.serve_forever()
from flask import Flask
from multiprocessing import Process
from zwsgi.servers import ZMQRouterDealerServer as WSGIServer
app = Flask(__name__)
@app.route('/ping')
def hello_world():
return 'Hello World!'
server = WSGIServer(('127.0.0.1', 7000), app, spawn_type=Process)
server.serve_forever()