首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使PySolr断开连接?

如何使PySolr断开连接?
EN

Stack Overflow用户
提问于 2017-06-22 14:51:12
回答 1查看 994关注 0票数 1

我正在为300+客户编写时间序列图表。由于合并的数据很大,而且在某些情况下,客户数据被重放或以稍微不同的方式操作,这对我们来说是有益的。

我的问题是,当请求完成并且函数返回数据时,我循环获得每个客户端数据的函数打开3个新线程,但从不关闭线程(假设连接保持打开状态)。

一旦我得到一个客户的结果,我想关闭这个连接。我只是不知道该怎么做,也没能在我的搜索中找到任何东西。

代码语言:javascript
复制
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)))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-23 08:43:04

PySolr 作为其基础库 (它反过来使用urllib3s连接池),因此调用solr.get_session().close()应该关闭所有连接并耗尽池:

代码语言:javascript
复制
def close(self):
    """Closes all adapters and as such the session"""

(SolrCloud是具有get_session()方法的Solr的扩展。)

为了断开与动物园管理员的连接(如果这是一个长时间运行的会话,因为它必须再次设置手表等),您可以在您的直接使用.zk对象实例上使用SolrCloud - zk是一个KazooClient

代码语言:javascript
复制
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.
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44702822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档