2016-07-25 16 views
6

बैकएंड त्रुटि [503] बैकएंड त्रुटि [503] बैकएंड त्रुटि [503] बैकएंड त्रुटि [503]यूट्यूब वी 3 एपीआई - Google.Apis.Requests.RequestErrorBackend त्रुटि [503]

+0

Fwiw, मैं भी इस का सामना कर रहा हूँ। कोड जो एक साल के लिए ठीक काम करता है, अचानक अचानक असफल हो गया। मैं सी # वी 3 एसडीके का भी उपयोग कर रहा हूं। – irhetoric

+0

टिप्पणी के लिए धन्यवाद! यह जानना अच्छा है कि मैं पागल नहीं जा रहा हूँ !! :)) – Ginko

+0

मैंने अभी तक परीक्षण नहीं किया है, लेकिन Google ने यहां उठाए गए मुद्दे का जवाब दिया है: https://code.google.com/p/gdata-issues/issues/detail?id=8439&thanks=8439&ts=1469419853 – Ginko

उत्तर

1

कुछ समय पहले, हो सकता है की एक जोड़ी महीनों में, Google अपलोड सर्वर ने अतीत में अपलोड किए गए अपलोड पर अधिक समय लगाना शुरू कर दिया। यही वह त्रुटि है जिसे आप देख रहे हैं। इस तथ्य के अलावा आपके कोड के साथ कुछ भी गलत नहीं है कि आप शायद त्रुटि को संभालने के बजाय त्रुटि की रिपोर्ट कर रहे हैं।

अधिकतर आप का उपयोग कर रहे हैं। विधि अपलोड करें। मैं यह इसलिए कहता हूं क्योंकि एक त्रुटि 503 रिटर्न "एक कार्य रद्द कर दिया गया था।" त्रुटि .UploadAsync विधि का उपयोग किया जाता है। मैं का उपयोग करता हूं। अपलोड अपलोड एएसआईएनसी और । मेरे अपलोड कार्यक्रम में ResesAsync

जब आपको का उपयोग करते समय इस तरह की त्रुटि मिलती है। विधि अपलोड करें, यह इंगित करता है कि सर्वर टाइमआउट अवधि के भीतर आपके अनुरोध को संभालने में बहुत व्यस्त है। आपके प्रोग्राम को इस त्रुटि को पहचानना चाहिए और पर कॉल करना चाहिए। अपलोड को फिर से शुरू करने के लिए विधि।

वैकल्पिक रूप से, आप समय समाप्ति डिफ़ॉल्ट से 100 सेकंड उच्च कुछ करने के लिए इस कथन का उपयोग बढ़ा सकते हैं: YouTube.HttpClient.Timeout = TimeSpan.FromMinutes(HTTP_CLIENT_TIMEOUT_MINUTES);

जहां YouTube आपके YouTubeService वस्तु के चर नाम है।

मेरे अनुभव में, टाइमआउट को बढ़ाने से त्रुटि को संभालने और अपलोड को फिर से शुरू करने का अनुरोध करने के रूप में प्रभावी नहीं है। उदाहरण के लिए, यदि आप टाइमआउट को पांच मिनट तक सेट करते हैं, तो पांच मिनट के बाद कोई प्रतिक्रिया वापस नहीं आती है तो आपका प्रोग्राम अभी भी असफल हो जाएगा। हाँ, ऐसा हो सकता है। मैं आमतौर पर टाइमआउट को दो मिनट तक सेट करता हूं और फिर कोई त्रुटि होने पर अपलोड फिर से शुरू करता है। लगभग हमेशा, अपलोड सही ढंग से फिर से शुरू होगा।

कभी-कभी, अपलोड तुरंत समय-समय पर हो सकता है। इस कारण से, मैं अपने रेज़्यूमे को गिनता हूं और फिर प्रोग्यूम काउंटर रीसेट करता हूं जब प्रोग्रेस चेंज IUploadProgress.Uploading ईवेंट ट्रिगर होता है। मेरे पास तीन रेज़्यूमे रीट्रीज़ की एक सीमा है और वह सीमा कभी खत्म नहीं हुई है।

+0

हाय , मैं अपलोडएसिंक और रेज़्यूमएसिंक का उपयोग करता हूं, जैसा कि आपने उल्लेख किया है, मैं पहले ही टाइमआउट सुविधा का उपयोग करता हूं। मैंने कुछ महीने पहले टाइमआउट में वृद्धि देखी थी, मैंने अपना टाइमआउट 5 पर सेट किया और यह तब से बहुत अच्छा रहा है। शायद 500 में से केवल 1 वीडियो 5 रिट्री से अधिक हो गया। हालांकि, मुझे नहीं लगता कि यह समय-समय पर होगा क्योंकि वीडियो 99% तक पहुंचते हैं या इस 503 त्रुटि को फेंकने से पहले वे 1% तक नहीं पहुंच सकते हैं। मुझे 503 मिड-अपलोड कभी नहीं मिला। – Ginko

+0

इसके अलावा, त्रुटि 503 पर शोध करने के बाद, Google डेवलपर्स को सलाह देता है कि इस फ़ंक्शन को दोबारा कॉल न करें। "503 बैकएंडर सर्वर ने एक त्रुटि लौटा दी। इस क्वेरी को एक से अधिक बार पुनः प्रयास न करें।" मुझे सच में विश्वास है कि बैकएंड में कुछ गलत है, और मुझे नहीं पता कि यह क्या है। क्या यह किसी और के लिए हो रहा है ??? – Ginko

1

इस thread से आधार पर, exponential back-off या पुन: प्रयास के कुछ फार्म के साथ अपने अंत में इस त्रुटि को संभालने के लिए प्रयास करें।

Example: यह विधि एक असफल अपलोड को फिर से शुरू करने के लिए एक घातीय बैकऑफ रणनीति लागू करती है।

def resumable_upload(insert_request): 
    response = None 
    error = None 
    retry = 0 
    while response is None: 
    try: 
     print "Uploading file..." 
     status, response = insert_request.next_chunk() 
     if 'id' in response: 
     print "Video id '%s' was successfully uploaded." % response['id'] 
     else: 
     exit("The upload failed with an unexpected response: %s" % response) 
    except HttpError, e: 
     if e.resp.status in RETRIABLE_STATUS_CODES: 
     error = "A retriable HTTP error %d occurred:\n%s" % (e.resp.status, 
                  e.content) 
     else: 
     raise 
    except RETRIABLE_EXCEPTIONS, e: 
     error = "A retriable error occurred: %s" % e 

    if error is not None: 
     print error 
     retry += 1 
     if retry > MAX_RETRIES: 
     exit("No longer attempting to retry.") 

     max_sleep = 2 ** retry 
     sleep_seconds = random.random() * max_sleep 
     print "Sleeping %f seconds and then retrying..." % sleep_seconds 
     time.sleep(sleep_seconds) 

तुम भी resumable upload protocol for Google APIs का उपयोग करके अधिक मज़बूती से वीडियो अपलोड कर सकते हैं। यह प्रोटोकॉल आपको नेटवर्क विफलताओं या अन्य विफलता विफलता के बाद एक अपलोड ऑपरेशन फिर से शुरू करने देता है, नेटवर्क विफलताओं की स्थिति में समय और बैंडविड्थ की बचत करता है।

इसके अलावा इन कड़ियों की जाँच करें:

+0

मेरे पास वास्तव में इस सॉफ़्टवेयर के लिए लागू घातीय बैकऑफ रणनीति है। यह एक साल के लिए किसी भी समस्या के साथ जगह में किया गया है। हालांकि, यह इस त्रुटि को तब तक नहीं समझाएगा जब मैं एक नए नए दिन सॉफ्टवेयर खोलता हूं, पहला वीडियो अपलोड करता हूं, और बूम! वही त्रुटि दिखाई देती है, वीडियो भी 1% तक नहीं पहुंचता है ... तत्काल त्रुटि। मैं फिर उपर्युक्त, समान परिणामों के समान विधि का उपयोग करने का प्रयास करने का प्रयास करता हूं। यहां 100% निश्चित रूप से बैकएंड मुद्दा है। – Ginko

+0

मैं Google दिशानिर्देशों के अनुसार अपनी "घातीय बैकऑफ रणनीति" के साथ अपलोडएसिंक और ResumeAsync विधियों का उपयोग करता हूं। मैंने शोध किया है, और फिर, यह सॉफ्टवेयर एक साल से भी ज्यादा समय से काम कर रहा है। 2-3 हफ्ते पहले कुछ ऐसा हुआ जो इन 503 के कारण हुआ। Google दस्तावेज़ों को पढ़ते समय, यह बताता है कि त्रुटि 'घातीय' एक "घातीय बैकऑफ रणनीति" के कारण हो सकती है। मुझे एक सामान्य त्रुटि की तरह लगता है। – Ginko

संबंधित मुद्दे