2012-01-10 18 views
24

मैंने कुछ लोगों द्वारा वर्णित 600 कॉल/600 सेकंड की दर सीमा देखी है (उदा। quora पर)।फेसबुक ग्राफ एपीआई दर सीमा और बैच अनुरोध

मैं क्या जानना चाहता हूं कि मुझे 600 सेकेंड में 600 batch अनुरोध करने की अनुमति है (बैच अनुरोध में 50 अनुरोध होते हैं)।

+0

"हम वर्तमान में 50 बैच अनुरोध की संख्या को सीमित । " - [फेसबुक] (https://developers.facebook.com/docs/reference/api/batch/)। 50 क्या? प्रति मिनट अनुरोध, दिन, उपयोगकर्ता !? – Xeoncross

+0

मैं वही चीज़ जानना चाहता था। 50 समवर्ती अनुरोध, प्रति मिनट अनुरोध, प्रति दिन, प्रति डायपर परिवर्तन ??? –

+2

हम्म .. मैं एफबी का मज़ा लेना चाहता था, लेकिन उनके दस्तावेज़ीकरण को पढ़ने से चीजों को स्पष्ट किया गया: "हम वर्तमान में अनुरोधों की संख्या को सीमित करते हैं जो बैच में 50 हो सकते हैं, लेकिन बैच के भीतर प्रत्येक कॉल को गणना के उद्देश्यों के लिए अलग से गिना जाता है एपीआई कॉल सीमाएं और संसाधन सीमाएं। उदाहरण के लिए, 10 एपीआई कॉल का बैच 10 कॉल के रूप में गिना जाएगा और बैच के भीतर प्रत्येक कॉल उसी तरह सीपीयू संसाधन सीमा में योगदान देता है। " –

उत्तर

11

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

से: https://developers.facebook.com/docs/bestpractices/

दर सीमित (API_EC_TOO_MANY_CALLS) अपने आवेदन भी कई कॉल कर रहा है, तो API सर्वर आप स्वचालित रूप से सीमित कर दर सकता है, एक "API_EC_TOO_MANY_CALLS" त्रुटि लौटने। आम तौर पर, यह नहीं होना चाहिए। यदि ऐसा होता है, तो ऐसा इसलिए होता है क्योंकि बहुत से एपीआई कॉल करने के लिए आपका आवेदन निर्धारित किया गया है। अपने कोड पर इटरेट करें ताकि आप उपयोगकर्ता अनुभव को बनाए रखने के लिए जितनी संभव हो सके कॉल कर सकें। आपको जटिल FQL क्वेरी से भी बचना चाहिए। को समझने के लिए यदि आपका एप्लिकेशन थ्रॉटल किया जा रहा है, तो अंतर्दृष्टि पर जाएं और "थ्रॉटलिंग" पर क्लिक करें।

संपादित

के रूप में टिप्पणी थ्रेड में IgY द्वारा रिपोर्ट, के रूप में 1. कि बैच की गिनती में प्रत्येक अनुरोध अधिकतम सीमा जा रहा है 600 के अपने उदाहरण के लिए, कि आप 15 बैच अनुरोध बंद आग कर सकते हैं इसका मतलब है प्रत्येक में 50 कॉल शामिल हैं।

+8

सर्वोत्तम प्रथाओं को इंगित करने के लिए धन्यवाद। हालांकि मेरा सवाल यह है कि अगर बैच किए गए अनुरोध और एकल अनुरोध दोनों सीमा के खिलाफ 1 अनुरोध के रूप में गिना जाता है। – daremon

+0

यदि फेसबुक के दस्तावेज़ यह नहीं कहते कि कौन सा किया जा रहा है, तो आपको सावधानी के पक्ष में त्रुटि होनी चाहिए ताकि आपके डेवलपर खाते को ध्वजांकित/निरस्त न किया जा सके और API से लौटाई गई त्रुटियों की निगरानी न हो। उन त्रुटियों की निगरानी करने और वे जो कहते हैं, उनका पालन करने का सबसे अच्छा अभ्यास है। – DMCS

+0

लिंक अब और काम नहीं कर रहा है? मुझे सीमित सीमा को लागू करने की ज़रूरत है, मैं किस तरह की प्रतिक्रिया वापस प्राप्त करूं? –

6

मेरे अनुभव से, वे अलग-अलग अनुरोधों की गणना करते हैं चाहे वे बनाए गए थे (बैच में या नहीं)।

उदाहरण के लिए, यदि मैं प्रत्येक 1 अनुरोध वाले 1 बैच/सेकंड करने की कोशिश कर रहा हूं, तो मुझे जल्द ही 'बहुत सारे कॉल' मिलेंगे।

यदि मैं 1 बैच/10 सेकेंड कर रहा हूं, तो प्रत्येक बैच 10 अनुरोधों का विरोध कर रहा है, मैं कभी भी कई कॉल नहीं देखता हूं।

मुझे नियमित रूप से नियमित API कॉल पर बैचों को पसंद करने का कोई कारण नहीं दिखता है।

2

बैच कॉल निश्चित रूप से बैच में प्रति आइटम गिना जाता है। 50 आइटम के साथ एक बैच कॉल ग्राफ का उपयोग करके 50 एपीआई कॉल के बराबर है।

5

एफबी दस्तावेज़ों के मुताबिक, बैच में प्रत्येक तत्व अलग कॉल के रूप में गिना जाता है।

वर्तमान में हम अनुरोध जो 50 के लिए एक बैच में किया जा सकता है की संख्या को सीमित है, लेकिन बैच के भीतर प्रत्येक कॉल API कॉल सीमा और संसाधन सीमा की गणना के प्रयोजनों के लिए अलग की जाती है। उदाहरण के लिए, 10 एपीआई कॉल का बैच 10 कॉल के रूप में गिना जाएगा और बैच के भीतर प्रत्येक कॉल उसी तरीके से CPU संसाधन सीमा में योगदान देता है।

से उद्धरित: https://developers.facebook.com/docs/reference/api/batch/

मैं अनुभवजन्य साक्ष्य लेकिन जरूरत नहीं है।

डेविड

3

मैं काफी बड़ा और दर्दनाक फेसबुक एपीआई के साथ अब अनुभव है और मुझे लगता है कि राज्य कर सकते हैं: एक बैच अनुरोध 50 अनुरोधों में शामिल है

  • है, तो यह फेसबुक पर 50 अनुरोधों के रूप में गिना
  • 1 अनुरोध! = 1 कॉल। फेसबुक की अपनी परिभाषा है कि कॉल क्या है। यदि आपका अनुरोध बड़ा है, तो बहुत सारे डेटा लौटें या बहुत सी सीपीयू का उपभोग करें, तो यह कई कॉलों के रूप में गिना जाएगा।

सबसे लगातार ग्राफ एपीआई कॉल जो मैं कर रहा हूं उनमें बहुत से घोंसले वाले फ़ील्ड हैं और मैंने देखा है कि मैं इसे केवल 200 बार करने के बाद "600 कॉल/600 सेकेंड" तक पहुंच गया हूं। तो मूल रूप से इस कॉल मेरे मामले में 3 के लिए गिनती ...

आप अन्य दर सीमा का एक बहुत, लेकिन उनमें से कोई भी ठीक से की प्रलेखित है ...

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