MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

सी # मोंगोडीबी चालक टाइमआउट विकल्पों को अनदेखा करता है

एक JIRA टिकट है CSHARP-1018 इस मुद्दे को ट्रैक करने के लिए। मूल रूप से ड्राइवर टाइमआउट विकल्प को अनदेखा कर देता है जब मशीन पहुंच योग्य नहीं होती है। यदि मशीन बंद है या पहुंच योग्य नहीं है तो टाइमआउट विकल्प को अनदेखा कर दिया जाता है।

कृपया इस मुद्दे पर प्रगति का पालन करने के लिए जिरा टिकट देखें।

CSHARP-1231 पर पोस्ट किया गया समाधान देखें इस तरह से कि ServerSelectionTimeout को ड्राइवर के वर्तमान 2.0.0 संस्करण में सेट किया जा सकता है यदि आप विशिष्ट संचालन पर कम टाइमआउट का उपयोग करने के लिए उस दृष्टिकोण को पसंद करते हैं।

यदि आप नए 2.0 async API का उपयोग कर रहे हैं, तो आप अपने स्वयं के टाइमआउट को संपूर्ण संचालन पर लागू करने के लिए रद्दीकरण टोकन का उपयोग कर सकते हैं।

तो मैं पिछली टिप्पणी में रद्दीकरण टोकन दृष्टिकोण की अनुशंसा करता हूं। छोटे सर्वर चयन टाइमआउट का उपयोग करने से प्रतिकृति सेट चुनावों के दौरान नकली अपवाद हो सकते हैं यदि सर्वर चयन टाइमआउट चुनाव को पूरा करने में लगने वाले समय से कम है।

आप कुछ इस तरह लिख सकते हैं:

var startTime = DateTime.UtcNow;
try
{
    using (var timeoutCancellationTokenSource = new CancellationTokenSource(TimeSpan.FromMilliseconds(500)))
    {
        await collection.Find("{ _id : 1 }").ToListAsync(timeoutCancellationTokenSource.Token);
    }
}
catch (OperationCanceledException ex)
{
    var endTime = DateTime.UtcNow;
    var elapsed = endTime - startTime;
    Console.WriteLine("Operation was cancelled after {0} seconds.", elapsed.TotalSeconds);
}

इस उदाहरण में, भले ही ServerSelectionTimeout अभी भी 30 सेकंड का डिफ़ॉल्ट मान है, यह विशेष ऑपरेशन केवल 500 मिलीसेकंड के बाद रद्द कर दिया जाएगा (लगभग, रद्द करने में कभी-कभी थोड़ा अधिक समय लग सकता है)।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. उप-दस्तावेजों के आधार पर मोंगोडब क्वेरी परिणामों को कैसे क्रमबद्ध करें

  2. IOS (स्विफ्ट) से MongoDB से कैसे कनेक्ट करें

  3. सी # में कनेक्शन स्ट्रिंग में निर्दिष्ट मोंगो डेटाबेस कैसे प्राप्त करें

  4. mongodb अद्यतन में शून्य सेट करें

  5. नेवले में जियोलोकेशन बनाएं और खोजें