Python 3.x 如何在pyzmq中检测轮询超时
如图所示,在轮询时是否有方法检测超时?找不到搜索的方法。轮询返回的元组中,套接字注册为第一项,并且有一个标志指示是否接收或发送帧。因此,您只需检查标志,如许多pyzmq示例所示:Python 3.x 如何在pyzmq中检测轮询超时,python-3.x,timeout,zeromq,pyzmq,Python 3.x,Timeout,Zeromq,Pyzmq,如图所示,在轮询时是否有方法检测超时?找不到搜索的方法。轮询返回的元组中,套接字注册为第一项,并且有一个标志指示是否接收或发送帧。因此,您只需检查标志,如许多pyzmq示例所示: poller = zmq.Poller() poller.register(socket, zmq.POLLIN) while(1) try: sockets = dict(poller.poll(timeout)) #How to detect timeout # do jo
poller = zmq.Poller()
poller.register(socket, zmq.POLLIN)
while(1)
try:
sockets = dict(poller.poll(timeout)) #How to detect timeout
# do job
except SomeTimeoutException:
break
如果您只需要测试一个插座,这也可以:
socket_dict = dict(poller.poll(timeout))
for polled_socket, flag in socket_dict.items():
if not (flag & zmq.POLLIN):
print("timeout")
if socket.poll(timeout) & zmq.POLLIN:
print("processing data...")
else:
print("timeout")