MongoDB में एक कमांड 'currentOp' है जिसमें वर्तमान संचालन शामिल हैं (सामान्य तौर पर, न केवल खुले कर्सर)। परिणाम "inprog" मानों की एक सरणी है। आपके पास ऑपरेशन की थ्रेड आईडी है, कर्सर आईडी नहीं है, लेकिन यह भारी ऑपरेशन या लंबे समय से चल रहे ऑपरेशन की जांच करने के लिए बहुत उपयोगी है। यह पूरी तरह से वह नहीं है जो आप चाहते हैं लेकिन मुझे लगता है कि आप एक छोटा प्रोग्राम लिख सकते हैं एक निश्चित अवधि के लिए कौन सा चल रहा है, यह पहचानने के लिए संचालन के समय का विश्लेषण करें।
एक एकत्रीकरण के मेरे डेटाबेस का एक उदाहरण देखें जिसे मैं केवल परीक्षण उद्देश्यों के लिए चलाता हूं, मैं कुछ डेटा छिपाऊंगा क्योंकि यह हमारे मामले में बहुत समझदार है :)
"inprog" : [
{
"opid" : 74074645,
"active" : true,
"secs_running" : 2,
"op" : "query",
"ns" : "mydb.Terms.ByHour",
"query" : {
"aggregate" : "Terms.ByHour",
"pipeline" : [
{
"$match" : {
"cluster" : "my_key",
"start" : {
"$gte" : ISODate("2013-11-10T00:00:00Z"),
"$lte" : ISODate("2013-11-11T00:00:00Z")
}
}
},
{
"$group" : {
"_id" : "$start",
"count" : {
"$sum" : "$count"
}
}
},
{
"$sort" : {
"_id" : 1
}
}
]
बस परिणाम को एक चर में रखें:
currentOps = db.currentOp()
और इसे एक नियमित जोंस के रूप में उपयोग करें, या एक छोटा प्रोग्राम लिखें जो currentOps.inprog सरणी को पुनरावृत्त करता है और secs_running> कुछ
की जांच करता है।मुझे आशा है कि यह मदद करता है।