pyzmqで存在しないソケットに接続すると、プログラムを停止するためにCTRL_Cを押す必要があります。誰かがなぜこのことが起きるのだろうか?多くの場合無効なソケットに接続するとPythonでZeromqがハングする
import zmq
INVALID_ADDR = 'ipc:///tmp/idontexist.socket'
context = zmq.Context()
socket = context.socket(zmq.REQ)
socket.connect(INVALID_ADDR)
socket.send('hello')
poller = zmq.Poller()
poller.register(socket, zmq.POLLIN)
conn = dict(poller.poll(1000))
if conn:
if conn.get(socket) == zmq.POLLIN:
print "got result: ", socket.recv(zmq.NOBLOCK)
else:
print 'got no result'
ありがとう、LINGERオプションは、私のアプリが終了時にぶら下がるのを止めるために必要なものでした! – aknuds1