我在我正在从事的项目中使用 kazoo。但一段时间后,我收到一条错误消息,提示无法打开与 zookeper 的新连接。
所以我写了一个小测试程序:
for i in range(0, 1000):
print i
zk = kazoo.client.KazooClient()
zk.start()
zk.stop()
在大约 500 次迭代之后,我遇到了一个错误:“打开的文件太多”。
我使用 kazoo 有什么问题吗?
调用close()
方法。从文档中:
close()
释放客户端持有的任何资源。
应该在停止的客户端上调用此方法,然后再将其丢弃。不这样做可能会导致文件句柄泄露。
1.0 版中的新功能。
但是,同一文档中的示例代码没有调用close()
,因此令人困惑。