文档菜单
文档首页
/
MongoDB 手册
/ /

终止正在运行的操作

在本页

  • 概述
  • 可用程序

MongoDB 提供两种方法来终止正在运行的操作maxTimeMS()db.killOp()。根据需要使用这些操作来控制 MongoDB 部署中操作的行为。

maxTimeMS() 方法为操作设置时间限制。当操作达到指定时间限制时,MongoDB 将在下一个 中断点 中断操作。

mongosh,使用以下方法为此查询设置30毫秒的时间限制

db.location.find( { "town": { "$regex": "(Pine Lumber)",
"$options": 'i' } } ).maxTimeMS(30)

考虑使用distinct命令,以返回每个具有city键的集合字段

db.runCommand( { distinct: "collection",
key: "city" } )

您可以将maxTimeMS字段添加到命令文档中,以设置45毫秒的操作时间限制

db.runCommand( { distinct: "collection",
key: "city",
maxTimeMS: 45 } )

达到maxTimeMS的操作将返回一个MaxTimeMSExpired错误。

方法 db.killOp() 在下一个 中断点 中断正在运行的操作。通过操作 ID 来识别目标操作。

db.killOp(<opId>)

警告

请谨慎终止正在运行的操作。仅使用 db.killOp() 终止由客户端启动的操作,不要 终止内部数据库操作。

命令 killOp 可在 mongos 上运行,并且可以杀死跨集群分片的查询(即读取操作)。当要终止的操作是写入操作时,killOp 命令不会传播到分片。

有关在分片集群中终止操作的更多信息,请参阅

有关如何在 mongos 上列出活动中的分片操作的信息,请参阅 $currentOp 中的 localOps 参数。

返回

管理