Mongodb Pymongo被遗弃”;pymongo“杀死”游标“线程”;客户端退出后
我有一个Python应用程序,它在不同的线程中运行作业。 一些WorkerJob为数据库连接实现pymongoMongodb Pymongo被遗弃”;pymongo“杀死”游标“线程”;客户端退出后,mongodb,python-3.x,pymongo,Mongodb,Python 3.x,Pymongo,我有一个Python应用程序,它在不同的线程中运行作业。 一些WorkerJob为数据库连接实现pymongo class Job(Thread): ... self.client = MongoClient() 每个作业都有一个完成方法,其中 self.client.close() 在作业即将终止时调用。因此,这应该结束所有关联的线程,但每个作业的一个线程保持活动状态: pymongo\u kill\u cursors\u thread 当我启动多个作业并完成它们时,这
class Job(Thread):
...
self.client = MongoClient()
每个作业都有一个完成方法,其中
self.client.close()
在作业即将终止时调用。因此,这应该结束所有关联的线程,但每个作业的一个线程保持活动状态:
pymongo\u kill\u cursors\u thread
当我启动多个作业并完成它们时,这些pymongo_kill_cursors_线程永不消亡,我在短时间内获得了数百个线程,下面是一个例子,在一个测试作业完成后:
我不知道为什么pymongo的close()方法不能正确清理,也不知道这是pymongo还是mongodb的问题
尝试
self.client._kill_cursors_executor._thread.join(1)
没有任何影响,我认为这是因为线程的锁定状态以及它是守护进程这一事实
任何想法都值得赞赏。多谢各位
使用“PyMongo”,版本:“3.5.1”,Python 3.6.1和MongoDB在docker官方镜像中运行听起来可能是一个bug,尽管它需要额外的诊断。请在jira.mongodb.org的PYTHON项目中打开一个票证,并提供一个完整的代码示例,我们可以在复制您看到的错误的计算机上运行该示例: 谢谢