Mongodb 如何使用pymongo MongoClient构造函数在给定的时间限制后中止mongo操作?

Mongodb 如何使用pymongo MongoClient构造函数在给定的时间限制后中止mongo操作?,mongodb,pymongo,pymongo-3.x,Mongodb,Pymongo,Pymongo 3.x,根据,您可以通过find()参数或收集方法设置查询操作的时间限制: cursor=db.collection.find(最大时间=1) 或 cursor=db.collection.find().max\u time\u ms(1) 报告说: 最大时间(可选):指定查询操作的时间限制。如果超过指定的时间,操作将中止并引发ExecutionTimeout。将此作为对光标调用max_time_ms()的替代方法传递 我们目前遇到一个问题,查询在消耗所有RAM和服务器死亡之前运行约30分钟。我

根据,您可以通过find()参数或收集方法设置查询操作的时间限制:

cursor=db.collection.find(最大时间=1)

cursor=db.collection.find().max\u time\u ms(1)
报告说:

  • 最大时间(可选):指定查询操作的时间限制。如果超过指定的时间,操作将中止并引发ExecutionTimeout。将此作为对光标调用max_time_ms()的替代方法传递
我们目前遇到一个问题,查询在消耗所有RAM和服务器死亡之前运行约30分钟。我希望这个参数对查询有一个严格的限制,在给定的时间之后,服务器会放弃

由于我们的应用程序充满了
find
s和游标:有没有办法直接在
MongoClient
构造函数中设置此参数?

报告说:

  • socketTimeoutMS:(整数或无)控制驱动程序在发送普通(非监控)数据库操作后等待响应的时间(毫秒),然后得出网络错误已发生的结论。默认为无(无超时)

  • connectTimeoutMS:(整数或无)控制在服务器监控期间,当将新套接字连接到服务器时,驱动程序将等待多长时间(以毫秒为单位),然后确定服务器不可用。默认值为20000(20秒)

  • serverSelectionTimeoutMS:(整数)控制驱动程序等待查找可用的适当服务器以执行数据库操作的时间(以毫秒为单位);在等待期间,可以执行多个服务器监视操作,每个操作都由connectTimeoutMS控制。默认值为30000(30秒)


…找不到另一个超时,并且这些超时似乎都不等于
max\u time\u ms
。我错过了什么吗?

我认为所有这些暂停只针对司机,而不是服务器端。要在服务器使用中终止进程,目前不可能,但有一个功能请求: