4

zeromqを接続しましたが、「msg_in」はすでにキューに入れられています。一定期間内に新しいメッセージがない場合、キューはタイムアウトのセットになります。タイムアウトを設定する方法。以下はコアコードです

requestDict = {"id":111, "name":"test"}
zmqConn.mSocket.send(json.dumps(requestDict), flags=zmq.NOBLOCK)
msg_in = zmqConn.mSocket.recv()
4

1 に答える 1

11

タイムアウトにはポーラーを使用する必要があります。

import zmq
p = zmq.Poller()
p.register(zmqConn.mSocket, zmq.POLLIN)

msgs = dict(p.poll(timeout)) 
if zmqConn.mSocket in msgs and msgs[zmqConn.mSocket] == zmq.POLLIN:
   # recv there
else:
   # timeout
于 2012-10-23T16:13:42.687 に答える