Как установить тайм-аут очереди сокета pyzmq

Я подключил zeromq, «msg_in» уже стоял в очереди. Если за указанный период времени нет нового сообщения, очередь ставится на истечение времени ожидания. как установить таймаут. Ниже приведен основной код

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

person mackjoner    schedule 16.10.2012    source источник


Ответы (1)


Вы должны использовать Poller для тайм-аутов:

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
person mechmind    schedule 23.10.2012