EDIT: Temel olarak MongoDB örneğimde arkaplan işlemlerinin nasıl çalıştığını anlamak ve gerektiğinde bunları sınamak/devre dışı bırakmak için bazı ipuçları arıyorum. mongostat
ve mongotop
'u denedim, ancak arka plan işlemlerinin hangi işlemleri yürüttüğünü ve neyin başladığını anlama konusunda bana yardımcı olan hiçbir şey bulamadım. Testlerimi çalıştırmaya başlamadan önce db.currentOp()
sürekli olarak boş bir dizi döndürür.MongoDB "arka plan işlemleri" nin izlenmesi?
Düğümle (mocha, salatalık) geliştirirken düzenli olarak testler yapıyorum.
**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)
Biz db temizlemek ve testler çalıştırmadan önce bazı temel verilerle doldurmak için pow-mongodb-demirbaşlar kullanın: dünden beri zaman sunucusu başlatma yaklaşık% 25 aşağıdaki hata ile mongodb bağlanmaya çalışılırken başarısız , bu gerçekleşiyor. Bu başladığında AFAIK hiçbir şey büyük ölçüde değişmedi. Bu hatanın kaynağını araştırmaya bile başlayabileceğim herhangi bir fikir var mı?
onay db.currentOp kullanarak arka plan süreci() çalıştıran. Etkin arkaplan işlemi durumunda, istemciniz bu hatayı –
atmak üzere yapılandırılmıştır. Bu komut her zaman boş bir dizi döndürür. Muhtemelen çalıştırdığım zaman "arka plan operasyonu" bitti. Yine de, bu hatayı aşmak için bazen 3 veya 4 kez çalışmam gerekir. – joniba
'db.currentOp()' ile doğru yolda olabilirsiniz, ancak belki doğru şekilde kullanmıyor olabilirsiniz. Bu yazı daha derinden gider; [MongoDB'de şu anda yürütülen işlemleri görüntüleme ve öldürme] (https://masteringmean.com/lessons/104-Viewing-and-killing-currently-executing-operations-in-MongoDB) –