के साथ pymongo AutoReconnect अपवाद को कैसे संभालें I मेरे पास 3 सदस्यों और एक पायथन एप्लिकेशन के साथ एक मोंगो डीबी प्रतिकृति सेट है जो इसमें डेटा संग्रहीत करता है।insert_many विधि
def safe_mongo_call(method, num_retries, *args, **kwargs):
while True:
try:
return method(*args, **kwargs)
except (pymongo.errors.AutoReconnect,
pymongo.errors.ServerSelectionTimeoutError) as e:
if num_retries > 0:
logger.debug('Retrying MongoDB operation: %s', str(e))
num_retries -= 1
else:
raise
मुझे यकीन है कि नहीं कर रहा हूँ, हालांकि जब थोक का उपयोग कर लिखते हैं ये अपवाद कैसे संभाल करने के लिए, उदाहरण के लिए:
मैं जब एक आवरण के साथ एकल दस्तावेज़ आवेषण का उपयोग कर के रूप में इस pymongo के AutoReconnect
अपवाद संभाल कर सकते हैं insert_many
विधि। documentation के अनुसार, थोक लिखने परमाणु नहीं हैं, इसलिए यदि अपवादों में से कोई एक होता है, तो डेटाबेस में सफलतापूर्वक कुछ दस्तावेज़ पहले से ही लिखे जा सकते हैं। इस प्रकार, मैं ऊपर के रूप में रैपर विधि का पुन: उपयोग नहीं कर सकता।
इन स्थितियों को संभालने का सबसे अच्छा तरीका क्या है?
प्रासंगिक: https : //gist.github.com/anthonywu/1696591 – TheChetan
आपके द्वारा प्रदान किया गया कोड मूल रूप से वही चीज़ है जो मैंने प्रश्न में पोस्ट किया था। मेरा उपयोग मामला अलग है और इसमें थोक परिचालन शामिल हैं जिन्हें केवल पुनः प्रयास नहीं किया जा सकता है क्योंकि दस्तावेजों का हिस्सा पहले ही डेटाबेस में लिखा जा सकता है। –