python - 如何处理并发客户端请求?

标签 python zeromq

这是在 python 中使用 zeroMQ 的请求/响应模式的示例代码。我想知道是否有办法同时处理来自多个客户端的请求?

import zmq 
import time 

def main():
    context = zmq.Context()
    serverSocket = StartServer(context,"9999")
    processRequests(serverSocket)

def processRequests (socket):
    while True:
        print "waiting for request"
        msg = socket.recv()
        print msg
        time.sleep(10)
        socket.send("Request processed")



def StartServer(context, port):
    socket = context.socket(zmq.REP)
    socket.bind("tcp://*:%s" % port)

    print "started server on", port 
    return socket 




if __name__ == '__main__':
    print "starting IPC server"
    main()

最佳答案

REQ-REP 模式是一种同步 模式。如果有两个 REQ 套接字连接到同一个 REP 套接字,则 REP 套接字将串行处理请求。

如果您想进行异步请求-回复,您需要研究 ROUTER-DEALER 模式,它是 REQ-REP 的通用类比。

如果您想要代理异步请求-回复,请查看“图 16 - 扩展请求-回复”部分 here .

关于python - 如何处理并发客户端请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18805184/

相关文章:

c - libevent kqueue 不适用于从 zmq_getsockopt() 返回的 fd

python - 获取命令的退出代码

python - 你如何将它从 Perl 翻译成 Python?

go - 什么是正确的 ZMQ 模式?

python - zmq.Poller 在 Python 中未收到任何消息

python - pyzmq 上下文有时初始化很慢

c++ - 如何获取 ZeroMQ 时间戳?

python - mysql工作台无法导入pyodbc

Python DEAP,当X代后适应度没有增加时如何停止进化?

python - 要索引的 id 的交叉引用列表