首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >客户退出后Pymongo放弃了"pymongo_kill_cursors_thread“

客户退出后Pymongo放弃了"pymongo_kill_cursors_thread“
EN

Stack Overflow用户
提问于 2017-10-22 13:36:11
回答 1查看 656关注 0票数 4

我有一个Python应用程序,它在分离的线程中运行作业。一些工人作业为数据库连接实现pymongo。

代码语言:javascript
复制
class Job(Thread):
     ...
     self.client = MongoClient()

每个作业都有一个完成方法,其中

代码语言:javascript
复制
self.client.close()

将在作业终止时调用。假设,这应该结束所有相关的线程,但是每个作业的一个线程仍然是活的:pymongo_kill_cursors_thread

当我启动多个作业并完成它们时,这些pymongo_kill_cursors_threads永远不会死,我在短时间内得到了数百个作业,下面是一个测试工作完成后的一个例子:

threading.enumerate()结果

我不知道为什么pymongo的close()方法没有正确清理,也不知道这是否是pymongo或mongodb问题。

正在尝试

代码语言:javascript
复制
self.client._kill_cursors_executor._thread.join(1)

没有任何效果,我认为这是因为线程的锁定状态和它是守护进程的事实。

任何想法都值得赞赏。非常感谢。

使用"PyMongo",版本:"3.5.1“,在官方的对接映像中运行Python3.6.1和MongoDB

EN

回答 1

Stack Overflow用户

发布于 2017-10-22 15:35:37

听起来可能是个bug,尽管它需要额外的诊断。请在jira.mongodb.org的project中打开一张票证,并提供一个完整的代码示例,我们可以在我们的计算机上运行这个示例来复制您看到的错误:https://stackoverflow.com/help/mcve

谢谢!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46874694

复制
相关文章

相似问题

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