EDIT: 基本的には、私のMongoDBインスタンスでどのようなバックグラウンド操作が実行されているかを理解するためのヒントを探しており、実行中のテストを妨げないように必要に応じて減らしたり無効にしたりします。私はmongostat
とmongotop
を試しましたが、どのバックグラウンド操作が実行されているのか、何が開始しているのかを理解するのに役立つものは見つかりませんでした。 db.currentOp()
は、テストの実行を開始する前に、実行時に一貫して空の配列を返します。MongoDBの "バックグラウンド操作"の監視?
定期的にノード(モカ、キュウリ)で開発中のテストを実行します。昨日以来、サーバーの初期化は、次のエラーでのMongoDBに接続しようとして失敗した時間の約25%:
**Unhandled rejection MongoError: exception: cannot perform operation: a background operation is currently running for collection** somecollection
at Function.MongoError.create (/somepath/node_modules/pow-mongodb-fixtures/node_modules/mongodb/node_modules/mongodb-core/lib/error.js:31:11)
at /somepath/node_modules/pow-mongodb-fixtures/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:793:66
at bound (domain.js:254:14)
at runBound (domain.js:267:12)
at Callbacks.emit (.../node_modules/pow-mongodb-fixtures/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:94:3)
at null.messageHandler (/somepath/node_modules/pow-mongodb-fixtures/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:235:23)
at Socket.<anonymous> (/somepath/node_modules/pow-mongodb-fixtures/node_modules/mongodb/node_modules/mongodb-core/lib/connection/connection.js:294:20)
at Socket.emit (events.js:107:17)
at readableAddChunk (_stream_readable.js:163:16)
at Socket.Readable.push (_stream_readable.js:126:10)
at TCP.onread (net.js:538:20)
は、我々はテストを実行する前に、デシベルをクリアして、いくつかの基本的なデータとそれを埋めるためにPOW-MongoDBの-器具を使用しますこれが起こっている場所です。これが起き始めると、AFAIKは何も変わっていません。私はこのエラーの原因を調べ始めることができるすべてのアイデアですか?
db.currentOp()を使用してバックグラウンドプロセスを確認してください。アクティブバックグラウンドプロセスの場合、クライアントはこのエラーをスローするように構成されます –
このコマンドは常に空の配列を返します。おそらく、私がそれを実行する時には、「バックグラウンド操作」が完了したでしょう。それでも、このエラーを回避するには、3〜4回実行する必要があることがあります。 – joniba
'db.currentOp()'と正しい軌道に乗っているかもしれませんが、正しく使用していないかもしれません。この記事ではさらに詳しく解説します。 [MongoDBで現在実行されている操作の表示と終了](https://masteringmean.com/lessons/104-閲覧と書き込み - 現在の操作 - 操作-in-MongoDB) –