cassandra创建多个连接而不是释放

q0qdq0h2  于 2021-06-14  发布在  Cassandra
关注(0)|答案(1)|浏览(324)

我使用的是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()
j2qf4p5b

j2qf4p5b1#

每个 Cluster 对象应该在完成时显式关闭,但这在这里是不可能的,因为您没有保留由创建的示例 Cluster([self.host])get_connection . close_cluster_connection 参考文献a self.cluster . 如果已经示例化了,并且要使用集群示例, get_connection 应该是这个样子。

def get_connection(self, timeout = 600):
    self.session = self.cluster.connect()
    self.session.default_timeout = timeout
    return self.session

如果你不能使用 self.cluster 在那里,你必须找到一种方法来跟踪你的 Cluster 完成后关闭示例。

相关问题