Overview
MongoDB proporciona dos facilidades para finalizar operaciones en ejecución:
maxTimeMS()y. Utilice estas operaciones según sea necesario para controlar el comportamiento de las operaciones en una implementación de db.killOp() MongoDB.
Procedimientos disponibles
maxTimeMS
El método establece un límite de tiempo para una operación. Cuando la operación alcanza el límite de tiempo especificado, MongoDB la interrumpe en el siguiente maxTimeMS() puntode interrupción.
Terminar una consulta
A partir de, utilice el siguiente método para establecer un límite de tiempo mongosh de 30 milisegundos para esta consulta:
db.location.find( { "town": { "$regex": "(Pine Lumber)", "$options": 'i' } } ).maxTimeMS(30)
Terminar un comando
Considere una operación potencialmente de larga duración que utiliza para devolver distinct cada collection campo distinto que tiene una city clave:
db.runCommand( { distinct: "collection", key: "city" } )
Puede agregar el campo maxTimeMS al documento de comando para establecer un límite de tiempo de 45 milisegundos para la operación:
db.runCommand( { distinct: "collection", key: "city", maxTimeMS: 45 } )
Las operaciones que llegan a maxTimeMS devolverán un error MaxTimeMSExpired.
killOp
El método interrumpe una operación db.killOp() en ejecución en el siguiente punto de interrupción. identifica la operación de destino por ID dedb.killOp() operación.
db.killOp(<opId>)
Advertencia
Finaliza las operaciones en marcha con extrema precaución. Sólo use db.killOp() para finalizar las operaciones iniciadas por los clientes y no terminar operaciones internas de base de datos.
Clúster fragmentado
El killOp comando se puede ejecutar en un mongos y puede eliminar consultas (es decir, operaciones de lectura) que abarcan fragmentos de un clúster. El killOp comando del mongos no se propaga a los fragmentos cuando la operación que se debe eliminar es una operación de escritura.
Para obtener más información sobre las operaciones de eliminación en un clúster fragmentado, consulte:
Para obtener información sobre cómo enumerar las operaciones de fragmentación que están activas en un, consulte mongos el localOps parámetro $currentOp en.