문서 홈 → 애플리케이션 개발 → MongoDB 매뉴얼
실행 중인 작업 종료
개요
MongoDB는 실행 중인 작업을 종료하는 두 가지 기능 maxTimeMS()
및 db.killOp()
를 제공합니다. 필요에 따라 이러한 작업을 사용하여 MongoDB 배포서버에서 작업의 동작을 제어할 수 .있습니다.
사용 가능한 절차
maxTimeMS
maxTimeMS()
메서드는 연산에 대한 시간제한을 설정합니다. 연산이 지정된 시간제한에 도달하면 MongoDB는 다음 중단 지점에서 연산을 중단합니다.
쿼리 종료
mongosh
에서 다음 메서드를 사용하여 이 쿼리에 대한 시간 제한을 30 밀리초로 설정합니다.
db.location.find( { "town": { "$regex": "(Pine Lumber)", "$options": 'i' } } ).maxTimeMS(30)
명령 종료
distinct
를 사용하여 city
키를 포함하는 각 고유 collection
필드를 반환하는 장기 실행 가능한 작업을 생각해 보겠습니다.
db.runCommand( { distinct: "collection", key: "city" } )
명령 문서에 maxTimeMS
필드를 추가하여 작업의 시간 제한을 45밀리초로 설정할 수 있습니다.
db.runCommand( { distinct: "collection", key: "city", maxTimeMS: 45 } )
maxTimeMS
에 도달한 작업은 MaxTimeMSExpired
오류를 반환합니다.
killOp
db.killOp()
메서드는 다음 중단 지점에서 실행 중인 작업을 중단합니다. db.killOp()
는 작업 ID로 대상 작업을 식별합니다.
db.killOp(<opId>)
경고
실행 중인 작업은 매우 주의해서 종료합니다. 클라이언트가 시작한 작업을 종료할 때만 db.killOp()
을(를) 사용하고 내부 데이터베이스 작업은 종료하지 않도록 합니다.
샤딩된 클러스터
MongoDB 4.0부터 killOp
명령은 mongos
에서 실행할 수 있으며 클러스터에서 샤드에 걸친 쿼리(즉, 읽기 작업)를 종료할 수 있습니다. mongos
의 killOp
명령은 쓰기 작업을 종료해야 하는 경우 샤드에 전파되지 않습니다.
샤드 클러스터의 작업 종료에 대한 자세한 내용은 다음을 참조하세요.
mongos
에서 활성화된 샤딩 작업을 나열하는 방법에 관한 정보는 $currentOp
의 localOps
매개변수에서 확인 가능합니다.