我使用的是python cassandra驱动程序3.15.1
我有一个运行多进程的脚本。
问题是由于某种原因,在调用close\u connection(get\u connection->run cql->close\u connection->然后调用close\u cluster)之后,连接没有正确释放。这将导致数百个连接/会话保持打开状态
任何关于在哪里寻找问题的提示都非常感谢。
def get_connection(self, timeout = 600):
self.session = Cluster([self.host]).connect()
self.session.default_timeout = timeout
return self.session
def close_connection(self, conn):
return conn.shutdown()
def close_cluster_connection(self):
return self.cluster.shutdown()
1条答案
按热度按时间j2qf4p5b1#
每个
Cluster
对象应该在完成时显式关闭,但这在这里是不可能的,因为您没有保留由创建的示例Cluster([self.host])
在get_connection
.close_cluster_connection
参考文献aself.cluster
. 如果已经示例化了,并且要使用集群示例,get_connection
应该是这个样子。如果你不能使用
self.cluster
在那里,你必须找到一种方法来跟踪你的Cluster
完成后关闭示例。