【问题标题】:How to process concurrent client requests?如何处理并发的客户端请求?
【发布时间】:2013-09-15 03:06:06
【问题描述】:

这里是在 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()

【问题讨论】:

    标签: python zeromq


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-25
      • 2023-01-14
      • 2012-12-06
      • 2019-06-03
      • 2021-03-25
      相关资源
      最近更新 更多