2017-01-24 8 views
0
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 

Как показано, есть ли способ обнаружить, когда во время опроса происходит тайм-аут? Не удалось найти способ поискаКак определить тайм-аут опроса в pyzmq

ответ

0

опрос возвращает кортежи с сокетами, зарегистрированными как первый элемент, и флаг, обозначающий, был ли получен или отправлен кадр. Таким образом, вы можете просто проверить флаг, как показано во многих примерах pyzmq:

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") 

 Смежные вопросы

  • Нет связанных вопросов^_^