5

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()
4

1 に答える 1

6

REQ-REP パターンは同期パターンです。同じ REP ソケットに 2 つの REQ ソケットが接続されている場合、REP ソケットは要求を連続して処理します。

非同期の要求と応答を行いたい場合は、REQ-REP の一般化された類似物である ROUTER-DEALER パターンを調べる必要があります。

仲介型の非同期リクエスト/リプライが必要な場合は、こちらの「図 16 - 拡張されたリクエスト/リプライ」セクションを参照してください

于 2013-09-14T19:04:53.853 に答える