[zeromq-dev] pyzmq on uwsgi process question

郭梁 g65537 at gmail.com
Mon Oct 10 09:46:03 CEST 2011


hello everyone

I have an application based on zeromq-2.1.10 & pyzmq-2.1.9, the architecture
looks like this:
--------------------------------------------------------------------
               nginx(uwsgi) REQ
 \ | /
 / | \
backend worker1 worker2 .... workerN  REP
--------------------------------------------------------------------
for some reasons, I do not intend to use the XREP/XREQ model, and each
back-end worker has its own address, the front-end through a certain
algorithm to determine the back-end workers, by "ipc://..." way
communication.
Independent testing everything looks normal, but on the uwsgi process, i got
the error code: http 502
The following is a simplified front-end code:
--------------------------------------------------------------------
#!/usr/bin/env python

import random
import zmq

num_workers = 32
socket_workers = []
context = zmq.Context()

for i in range(num_workers):
socket = context.socket(zmq.REQ)
socket.connect("ipc:///dev/shm/april/worker%d.ipc" % i)
socket_workers.append(socket)

def run(environ):
i = random.randint(0, 32)
socket_workers[i].send_pyobj({})
return str(socket_workers[i].recv_json())

def application(environ, start_response):
    status = '200 OK'
    output = run(environ)
    response_headers = [('Content-type', 'text/plain'), ('Content-Length',
str(len(output)))]
    start_response(status, response_headers)
    return [output]

# for Test
if __name__ == "__main__":
    print run(None)
--------------------------------------------------------------------
can anyone share their experience and thoughts on this?
regards
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20111010/d0850691/attachment.htm>


More information about the zeromq-dev mailing list