【发布时间】:2018-03-20 07:29:30
【问题描述】:
我一直试图弄清楚当我的套接字尚未连接到绑定地址时如何关闭Context-instance(或者如果我什至需要)。这是我的演示代码:
import zmq
import json
data = {}
data['key'] = 'value'
json_data = json.dumps(data)
context = zmq.Context.instance()
socket = context.socket(zmq.REQ)
socket.connect("tcp://localhost:5555")
socket.send_json(data)
socket.close()
print("I get here!")
context.term()
我的预期行为是这一切都很好。我的实际行为是 context.term() 阻塞而无法 ^C 退出。它打印出“我到了!”在它停止之前,顺便说一句。
编辑结合所选答案的解决方案,这可行:
import zmq
import json
data = {}
data['key'] = 'value'
json_data = json.dumps(data)
context = zmq.Context.instance()
socket = context.socket(zmq.REQ)
socket.setsockopt(zmq.LINGER, 100)
socket.connect("tcp://localhost:5555")
socket.send_json(data)
socket.close()
print("I get here!")
context.term()
【问题讨论】: