如何让 PySolr 断开连接?
How do I make PySolr drop a connection?
我正在为 300 多个客户制作时间序列图表。
对我们来说,单独提取每个客户端是有益的,因为组合数据非常庞大,并且在某些情况下,客户端数据会以稍微不同的方式重新采样或操作。
我的问题是,当请求完成并且函数 returns 数据。
收到客户端的结果后,我想关闭该连接。我只是不知道该怎么做,而且在我的搜索中也找不到任何东西。
def solr_data_pull(submitterId):
zookeeper= pysolr.ZooKeeper('ndhhadr1dnp11,ndhhadr1dnp12,ndhhadr1dnp13:2181/solr')
solr = pysolr.SolrCloud(zookeeper, collection='tran_timings', timeout=60)
query = ('SubmitterId:'+ str(submitterId) +' AND Tier:'+tier+' AND Mode:'+mode+' '
'AND Timestamp:['+ str(start_period)+' TO '+ str(end_period)+ '] ')
results = solr.search(rows=50000, q=[query], fl=[fl_list])
return(pd.DataFrame(list(results)))
PySolr uses the Session
object from requests
as its underlying library(它又使用 urllib3s 连接池),因此调用 solr.get_session().close()
应该关闭所有连接并耗尽池:
def close(self):
"""Closes all adapters and as such the session"""
(SolrCloud
是 Solr
的扩展,具有 get_session()
方法。)
为了与 Zookeeper 断开连接——如果它是一个很长的 运行 会话,你可能不应该这样做,因为它必须再次设置手表等,你可以 use the .zk object directly on your SolrCloud
instance - zk is a KazooClient:
stop()
Gracefully stop this Zookeeper session.
close()
Free any resources held by the client.
This method should be called on a stopped client before
it is discarded. Not doing so may result in filehandles
being leaked.
我正在为 300 多个客户制作时间序列图表。 对我们来说,单独提取每个客户端是有益的,因为组合数据非常庞大,并且在某些情况下,客户端数据会以稍微不同的方式重新采样或操作。
我的问题是,当请求完成并且函数 returns 数据。
收到客户端的结果后,我想关闭该连接。我只是不知道该怎么做,而且在我的搜索中也找不到任何东西。
def solr_data_pull(submitterId):
zookeeper= pysolr.ZooKeeper('ndhhadr1dnp11,ndhhadr1dnp12,ndhhadr1dnp13:2181/solr')
solr = pysolr.SolrCloud(zookeeper, collection='tran_timings', timeout=60)
query = ('SubmitterId:'+ str(submitterId) +' AND Tier:'+tier+' AND Mode:'+mode+' '
'AND Timestamp:['+ str(start_period)+' TO '+ str(end_period)+ '] ')
results = solr.search(rows=50000, q=[query], fl=[fl_list])
return(pd.DataFrame(list(results)))
PySolr uses the Session
object from requests
as its underlying library(它又使用 urllib3s 连接池),因此调用 solr.get_session().close()
应该关闭所有连接并耗尽池:
def close(self):
"""Closes all adapters and as such the session"""
(SolrCloud
是 Solr
的扩展,具有 get_session()
方法。)
为了与 Zookeeper 断开连接——如果它是一个很长的 运行 会话,你可能不应该这样做,因为它必须再次设置手表等,你可以 use the .zk object directly on your SolrCloud
instance - zk is a KazooClient:
stop()
Gracefully stop this Zookeeper session.
close()
Free any resources held by the client.
This method should be called on a stopped client before
it is discarded. Not doing so may result in filehandles
being leaked.