"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > बड़े पैमाने पर एपीआई डेटा पुनर्प्राप्ति का अनुकूलन: सर्वोत्तम अभ्यास और PHP आलसी संग्रह समाधान

बड़े पैमाने पर एपीआई डेटा पुनर्प्राप्ति का अनुकूलन: सर्वोत्तम अभ्यास और PHP आलसी संग्रह समाधान

2024-11-08 को प्रकाशित
ब्राउज़ करें:644

Optimizing Large-Scale API Data Retrieval: Best Practices and PHP Lazy Collection Solution

विशाल मात्रा में डेटा-संभवतः हजारों आइटम-प्राप्त करने के लिए एपीआई के साथ काम करते समय विचार करने के लिए कई महत्वपूर्ण पहलू हैं, यह सुनिश्चित करना कि प्रक्रिया कुशल, लचीली और निष्पादन योग्य है। यहां PHP उपयोगकर्ताओं के लिए समाधान के साथ-साथ प्रबंधन करने योग्य प्रमुख कारकों का विवरण दिया गया है।

एपीआई के माध्यम से बड़े डेटा को पुनर्प्राप्त करते समय मुख्य विचार

मुझे एपीआई के माध्यम से बड़े डेटासेट को कुशलतापूर्वक पुनर्प्राप्त करने के लिए कुछ महत्वपूर्ण विचार साझा करने दें:

  • पृष्ठांकन को संभालना: एपीआई आम तौर पर पृष्ठों में डेटा वितरित करते हैं। सभी डेटा को पुनः प्राप्त करने के लिए, आपको कर्सर या पेज नंबर का ट्रैक रखते हुए कई एपीआई कॉल करते हुए पेजिनेशन प्रबंधित करना होगा। आवश्यक एपीआई कॉल की संख्या की गणना करना और इस प्रक्रिया को प्रबंधित करना यह सुनिश्चित करने के लिए आवश्यक है कि आपको संपूर्ण डेटासेट मिले।
  • मेमोरी प्रबंधन: बड़े डेटासेट लाते समय, एक ही बार में सब कुछ मेमोरी में लोड करने से आपका सिस्टम प्रभावित हो सकता है। सभी परिणामों को एक ही समय में मेमोरी में लोड करने से बचना महत्वपूर्ण है। इसके बजाय, डेटा को टुकड़ों में संसाधित करें, यह सुनिश्चित करते हुए कि आपका एप्लिकेशन उत्तरदायी बना रहे और मेमोरी समस्याओं में न चले।
  • दर सीमित करना और थ्रॉटलिंग: कई एपीआई दर सीमाएं लगाते हैं, जैसे आपको प्रति सेकंड एक्स अनुरोध या प्रति मिनट वाई अनुरोध तक सीमित करना। इन सीमाओं के भीतर रहने के लिए, आपको एक लचीला थ्रॉटलिंग तंत्र लागू करना होगा जो एपीआई के विशिष्ट प्रतिबंधों के अनुकूल हो।
  • समानांतर एपीआई अनुरोध: पेजिनेशन के कारण कई एपीआई कॉल करने की आवश्यकता को देखते हुए, आप जितनी जल्दी हो सके डेटा पुनर्प्राप्त करना चाहते हैं। एक रणनीति दर सीमा का सम्मान करते हुए, समानांतर में कई एपीआई कॉल करने की है। यह सुनिश्चित करता है कि आपके अनुरोध तेज़ और एपीआई बाधाओं के अनुरूप हैं।
  • कुशल डेटा संग्रह: कई पृष्ठांकित एपीआई अनुरोध करने के बावजूद, आपको परिणामों को एक संग्रह में संयोजित करने की आवश्यकता है, मेमोरी अधिभार से बचने के लिए उन्हें कुशलतापूर्वक संभालना होगा। यह संसाधन उपयोग को कम रखते हुए डेटा की सुचारू प्रोसेसिंग सुनिश्चित करता है।
  • अनुकूलित JSON पार्सिंग: कई एपीआई JSON प्रारूप में डेटा लौटाते हैं। बड़ी प्रतिक्रियाओं से निपटते समय, JSON के विशिष्ट अनुभागों तक प्रभावी ढंग से पहुंच और क्वेरी करना महत्वपूर्ण है, यह सुनिश्चित करते हुए कि अनावश्यक डेटा लोड या संसाधित नहीं किया जाता है।
  • कुशल अपवाद प्रबंधन: एपीआई आमतौर पर HTTP स्थिति कोड के माध्यम से अपवाद उठाते हैं, जो टाइमआउट, अनधिकृत पहुंच या सर्वर त्रुटियों जैसे मुद्दों का संकेत देते हैं। आपकी प्रोग्रामिंग भाषा द्वारा प्रदान की गई अपवाद तंत्र का उपयोग करके इन्हें संभालना महत्वपूर्ण है। बुनियादी त्रुटि प्रबंधन के अलावा, आपको अपवादों को इस तरह से मैप और बढ़ाना चाहिए जो आपके एप्लिकेशन के तर्क के साथ संरेखित हो, जिससे त्रुटि प्रबंधन प्रक्रिया स्पष्ट और प्रबंधनीय हो। सार्थक अपवादों के लिए पुनर्प्रयास, लॉगिंग और मैपिंग त्रुटियों को लागू करना एक सुचारू और विश्वसनीय डेटा पुनर्प्राप्ति प्रक्रिया सुनिश्चित करता है।

"आलसी JSON पेज" PHP समाधान

यदि आप PHP के साथ काम कर रहे हैं, तो आप भाग्यशाली हैं। Lazy JSON Pages ओपन सोर्स पैकेज एक सुविधाजनक, फ्रेमवर्क-अज्ञेयवादी एपीआई स्क्रैपर प्रदान करता है जो एसिंक्रोनस HTTP अनुरोधों के माध्यम से पृष्ठांकित JSON एपीआई से आइटम को लारवेल आलसी संग्रह में लोड कर सकता है। यह पैकेज दक्षता और प्रदर्शन सुनिश्चित करते हुए पेजिनेशन, थ्रॉटलिंग, समानांतर अनुरोध और मेमोरी प्रबंधन को सरल बनाता है।

आप आधिकारिक GitHub रिपॉजिटरी के रीडमी में पैकेज के बारे में अधिक जानकारी और इसे अनुकूलित करने के लिए अधिक विकल्प पा सकते हैं: लेज़ी JSON पेज।

मैं पैकेज के लेखक एंड्रिया मार्को सार्तोरी को धन्यवाद कहना चाहता हूं।

उदाहरण: स्टोरीब्लॉक से हज़ारों कहानियाँ पुनर्प्राप्त करना

यहां PHP में लेज़ी JSON पेज पैकेज का उपयोग करके स्टोरीब्लॉक से हजारों कहानियां पुनर्प्राप्त करने का एक संक्षिप्त उदाहरण दिया गया है।
सबसे पहले, आप एक नई निर्देशिका बना सकते हैं, निर्देशिका में जा सकते हैं और पैकेज स्थापित करना शुरू कर सकते हैं:

mkdir lazy-http
cd lazy-http
composer require cerbero/lazy-json-pages

एक बार पैकेज स्थापित हो जाने पर, आप अपनी स्क्रिप्ट बनाना शुरू कर सकते हैं:

totalItems('total')
    ->async(requests: 3)
    ->throttle(requests: 10, perSeconds: 1)
    ->collect('stories.*');

foreach ($lazyCollection as $item) {
    echo $item["name"] . PHP_EOL;
}

फिर आप अपना एक्सेस टोकन बदल सकते हैं, और php कमांड के माध्यम से स्क्रिप्ट निष्पादित कर सकते हैं।

यह काम किस प्रकार करता है

  • कुशल पृष्ठांकन: एपीआई परिणाम पृष्ठांकित होते हैं, और आलसी संग्रह स्मृति में सब कुछ संग्रहीत करने की आवश्यकता के बिना सभी पृष्ठों को लाने का काम करता है।
  • Async API कॉल: ->async(अनुरोध: 3) लाइन समानांतर में तीन API अनुरोधों को ट्रिगर करती है, जिससे प्रदर्शन में सुधार होता है।
  • थ्रॉटलिंग: ->थ्रोटल(अनुरोध: 10, प्रतिसेकंड: 1) लाइन यह सुनिश्चित करती है कि दर सीमा का पालन करते हुए प्रति सेकंड 10 से अधिक अनुरोध न किए जाएं।
  • मेमोरी दक्षता: आलसी संग्रह का उपयोग डेटा को आइटम-दर-आइटम संसाधित करने की अनुमति देता है, जिससे बड़े डेटासेट के साथ भी मेमोरी ओवरहेड कम हो जाता है।

यह दृष्टिकोण PHP में एपीआई से बड़ी मात्रा में डेटा पुनर्प्राप्त करने के लिए एक विश्वसनीय, निष्पादन योग्य और मेमोरी-कुशल समाधान प्रदान करता है।

संदर्भ

  • आलसी JSON पेज पैकेज: https://github.com/cerbero90/lazy-json-pages
  • ओपन सोर्स पैकेज के लेखक: https://github.com/cerbero90
विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/robertobutti/optimization-large-scale-api-data-retrieval-best-practices-and-php-lazy-collection-solution-1lc1?1 यदि कोई उल्लंघन है , कृपया स्टडी_गोलंग @163.कॉमडिलीट से संपर्क करें
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3