2017-01-24 27 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

pollは、最初の項目としてソケットが登録されたタプルを返し、フレームが受信されたか送信されたかを示すフラグを返します。あなただけの1つのソケットをテストする必要がある場合は

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") 
多くpyzmq例に示すように、このようにあなただけの、フラグをチェックすることができます
関連する問題