Visão geral
O MongoDB fornece duas instalações para encerrar operações em execução: maxTimeMS() e db.killOp(). Use essas operações conforme o necessário para controlar o comportamento das operações em um sistema do MongoDB .
Procedimentos disponíveis
maxTimeMS
O método maxTimeMS() define um limite de tempo para uma operação. Quando a operação atinge o limite de tempo especificado, o MongoDB interrompe a operação no próximo ponto de interrupção.
Encerrar uma query
A partir do mongosh, utilize o seguinte método para definir um limite de tempo de 30 milissegundos para esta query:
db.location.find( { "town": { "$regex": "(Pine Lumber)", "$options": 'i' } } ).maxTimeMS(30)
Encerrar um comando
Considere uma operação de execução potencialmente longa usando distinct para retornar cada campo collection distinto que tenha uma chave city:
db.runCommand( { distinct: "collection", key: "city" } )
Você pode adicionar o campo maxTimeMS ao documento de comando para definir um limite de tempo de 45 milissegundos para a operação:
db.runCommand( { distinct: "collection", key: "city", maxTimeMS: 45 } )
Operações que atingirem maxTimeMS retornarão um erro MaxTimeMSExpired.
killOp
O método db.killOp() interrompe uma operação em execução no próximo ponto de interrupção. db.killOp() identifica a operação de destino por ID da operação.
db.killOp(<opId>)
Aviso
Encerre as operações em execução com extrema cautela. Use apenasdb.killOp() para encerrar operações iniciadas por clientes e não encerre operações internas de banco de dados.
Cluster fragmentado
O comando killOp pode ser executado em um mongos e pode encerrar consultas (ou seja, operações de leitura) que abrangem fragmentos em um cluster. O comando killOp do mongos não se propaga para os fragmentos quando a operação a ser eliminada é uma operação de gravação.
Para saber mais sobre como eliminar operações em um cluster fragmentado, consulte:
Para obter informações sobre como listar as operações de fragmentação que estão ativas em um mongos, consulte o parâmetro localOps em $currentOp.