वृद्धिशील सिंक्रनाइज़ेशन एक पृष्ठ के बीच में रुकने और सबूत खोए बिना पुनः आरंभ करने में सक्षम होना चाहिए। कठिन मामला पहला सफल डाउनलोड नहीं है। यह भंडारण के बाद का समय समाप्ति, पुनरारंभ के बाद डुप्लिकेट डिलीवरी और स्पष्ट रिपोर्टिंग अवधि समाप्त होने के बाद आने वाली रिपोर्ट है।
पहचान की इकाई को परिभाषित करें
प्रदाता की प्रलेखित रिपोर्ट पहचान का उपयोग करें और उसके किरायेदार और रिपोर्टर संदर्भ को बनाए रखें। रिपोर्ट आईडी को ग्राहकों या स्रोतों के लिए विश्व स्तर पर अद्वितीय नहीं माना जाना चाहिए। पहचान के साथ एक स्रोत पेलोड फ़िंगरप्रिंट संग्रहीत करें। एक समान दोहराव को डुप्लिकेट के रूप में माना जा सकता है; अलग-अलग बाइट्स के साथ एक ही पहचान की जांच की जानी चाहिए या एक दस्तावेजी संशोधन मॉडल के माध्यम से नियंत्रित किया जाना चाहिए।
RFC 9990 की संरचना और शब्दार्थ प्रदान करता है समग्र रिपोर्ट. मूल रिपोर्टिंग अवधि और प्राप्ति समय को अलग-अलग रखें। एक संग्राहक के वृद्धिशील वॉटरमार्क को ऐतिहासिक मूल्यांकन अवधि को आगमन टाइमस्टैम्प के रूप में चुपचाप पुनर्व्याख्या नहीं करनी चाहिए।
डेटा और प्रगति को एक साथ प्रतिबद्ध करें
एक घिरा हुआ पृष्ठ प्राप्त करें, स्कोप और स्कीमा को मान्य करें, सामान्यीकृत डेटा को उसके उद्गम के साथ लिखें और उसके बाद ही चेकपॉइंट को आगे बढ़ाएं। ऐसे लेन-देन को प्राथमिकता दें जो डेटा प्रदान करता हो और परमाणु रूप से प्रगति करता हो। यदि वह अनुपलब्ध है, तो स्थिर विशिष्टता बाधा के साथ पुनः चलाने के लिए डिज़ाइन करें। रिकॉर्ड टिकाऊ होने से पहले सहेजा गया कर्सर एक हानि विंडो बनाता है।
मान लीजिए कि एक संग्राहक पृष्ठ एक को टिकाऊ रूप से संग्रहीत करता है लेकिन उसके प्रगति मार्कर को आगे बढ़ाने से पहले ही क्रैश हो जाता है। पुनः आरंभ करने पर, यह पृष्ठ को दोबारा ला सकता है। उचित रूप से सीमित स्थिर पहचान बाधा को अगले पृष्ठ को प्रतिबद्ध करने की अनुमति देते हुए सटीक दोहराव जोड़ने से बचना चाहिए। यदि रिकॉर्ड टिकाऊ होने से पहले प्रगति मार्कर आगे बढ़ गया था, तो पुनरारंभ साक्ष्य को पूरी तरह से छोड़ सकता है। ये काल्पनिक विफलता स्थितियाँ हैं, निष्पादित फ़ाइल या डेटाबेस परीक्षण नहीं।
यदि दोहराई गई पहचान अलग-अलग स्रोत बाइट्स के साथ आती है, तो दस्तावेज़ीकृत संशोधन निर्णय के लिए मूल और विरोध को सुरक्षित रखें। बदला हुआ हैश जांच के लिए एक संकेत है, यह सबूत नहीं है कि संदेश की गिनती बदल गई है: स्वरूपण या सामान्यीकरण बाइट्स को भी प्रभावित कर सकता है। अनुमोदित कार्यान्वयन के तहत वास्तविक भंडारण लेनदेन, क्रैश रिकवरी और स्रोत-बाइट तुलना का परीक्षण करें; यह मार्गदर्शिका स्थायित्व की कोई गारंटी नहीं देती है।
निश्चितता का दावा किए बिना विलंबता को संभालें
जब वास्तविक एपीआई आगमन को पुनः क्वेरी करने का समर्थन करता है, तो एक बाउंडेड ओवरलैप विंडो का उपयोग करें, फिर पहचान के आधार पर डुप्लिकेट करें। देखी गई अंतर्ग्रहण देरी और परिचालन आवश्यकताओं का उपयोग करके ओवरलैप चुनें। एक सीमित ओवरलैप मनमाने ढंग से देर से डेटा की खोज की गारंटी नहीं दे सकता है। आवधिक पूर्ण समाधान या कोई अन्य दस्तावेज़ीकृत बैकफ़िल तंत्र जोड़ें और शेष कवरेज सीमा को रिकॉर्ड करें।
संशोधनों को सटीक डुप्लिकेट से अलग रखें। विरोध पर दोनों हैश बनाए रखें और पहले से जारी ग्राहक रिपोर्ट को चुपचाप बदलने से एक अस्पष्टीकृत प्रतिस्थापन को रोकें। जब एक वैध सुधार स्वीकार कर लिया जाता है, तो पिछले परिणाम का पता लगाते हुए, एक नए संशोधन के तहत प्रभावित सारांशों की पुनः गणना करें।
वास्तविक सेवा अनुबंध के तहत पुनर्प्राप्त करें
सम्मान दर सीमा, पुनः प्रयास के बाद और संस्करण-विशिष्ट पृष्ठांकन। GitHub की API सर्वोत्तम प्रथाएँ सीमित, विचारशील अनुरोध व्यवहार का एक ठोस उदाहरण प्रस्तुत करें; वे प्रमाणीकरण विक्रेता के कोटा को परिभाषित नहीं करते हैं। 429 या क्षणिक विफलता को नीति के अंतर्गत रुकने और पुनः प्रयास करने के कारण के रूप में मानें, न कि असीमित समानांतर अनुरोधों की अनुमति के रूप में।
अंतिम सफल चेकपॉइंट, सबसे पुराने असंसाधित आगमन, पुनः प्रयास थकावट और संघर्ष की निगरानी करें। अटके हुए कर्सर के साथ एक स्वस्थ एपीआई प्रतिक्रिया अभी भी एक विफल सिंक्रनाइज़ेशन है। किसी अस्पष्ट परिणाम पर, किसी साइड-इफेक्टिंग कदम को पुनः प्रयास करने से पहले संग्रहीत पहचान और प्रगति का निरीक्षण करें। स्रोत बाइट्स और पिछले चेकपॉइंट को सुरक्षित रखें ताकि पुनर्प्राप्ति साक्ष्य के आधार पर हो। यहां कोई एपीआई कॉल, पुनः प्रयास सिमुलेशन या EmailAuth सिंक्रनाइज़ेशन क्षमता प्रदर्शित नहीं की गई है। GitHub का दर-सीमा दस्तावेज़ ध्यान दें कि यह दर सीमा के लिए 403 के साथ-साथ 429 भी लौटा सकता है; प्रत्येक स्थिति को एक अर्थ देने के बजाय प्रलेखित सीमा संकेतों को स्थायी प्राधिकरण इनकार से अलग करें।