我在正在研究的项目中使用kazoo。但过了一段时间后,我收到一条错误消息,指出无法打开与zookeper的新连接。
所以我写了一个小测试程序:
for i in range(0, 1000):
print i
zk = kazoo.client.KazooClient()
zk.start()
zk.stop()
经过大约500次迭代后,我遇到了一个错误:“打开的文件过多”。
我是否错误地使用kazoo?
答案 0 :(得分:2)
调用close()
方法。来自documentation:
close()
释放客户持有的任何资源。
应该在停止的客户端之前调用此方法 丢弃。不这样做可能会导致文件句柄泄露。
1.0版中的新功能。
然而,同一文档中的示例代码并未调用close()
,因此令人困惑。