2010-08-08 14 views
8

मैं जावा ट्विटर ऐप (ट्विटर 4 जे एपीआई का उपयोग करके) के साथ काम कर रहा हूं। मैंने ऐप बनाया है और वर्तमान उपयोगकर्ता टाइमलाइन, उपयोगकर्ता की प्रोफाइल इत्यादि देख सकते हैं ..दर सीमा पार हो गई - कस्टम ट्विटर ऐप

हालांकि, ऐप का उपयोग करते समय यह 150 से अधिक अनुरोधों से अधिक तेज़ी से लगता है ट्विटर ट्विटर पर एक घंटे की दर सीमा सेट (मुझे डेवलपर्स पता है दिए गए खातों पर इसे 350 तक बढ़ा सकते हैं, लेकिन यह अन्य उपयोगकर्ताओं के लिए हल नहीं होगा)।

निश्चित रूप से यह सभी ग्राहकों को प्रभावित नहीं कर रहा है, इस बारे में कोई विचार है कि इस बारे में कैसे जाना है?

क्या किसी को पता है कि अनुरोध के रूप में क्या मायने रखता है? उदाहरण के लिए, जब मैं उपयोगकर्ता की प्रोफ़ाइल देखता हूं, तो मैं उपयोगकर्ता ऑब्जेक्ट (twitter4j) लोड करता हूं और फिर JSON ऑब्जेक्ट में डालने के लिए स्क्रीननाम, उपयोगकर्ता नाम, उपयोगकर्ता विवरण, उपयोगकर्ता स्थिति इत्यादि प्राप्त करता हूं - क्या यह ऑब्जेक्ट प्राप्त करने के लिए एक एकल कॉल होगा या यह सभी उपयोगकर्ता.get ... कॉल करने के लिए कई होगा?

अग्रिम धन्यवाद

उत्तर

4

में आप वास्तव में ट्रैक क्या अपने वर्तमान अनुरोध गिनती है जब ट्विटर के साथ काम कर रखने की जरूरत है।

हालांकि, ट्विटर 304 के लिए गिनती को कम नहीं करता है (कम से कम यह आखिरी बार मैंने इसका सामना नहीं किया), इसलिए सुनिश्चित करें कि HTTP कैशिंग के सामान्य उपयोग को तोड़ने में कुछ नहीं है, और प्रति घंटे आपका व्यावहारिक अनुरोध बढ़ जाता है।

ध्यान दें कि ट्विटर अपाचे पर mod_gzip में एक बग से पीड़ित है जहां ई-टैग को यह बदलने के लिए खराब रूप से गठित किया गया है कि सामग्री-एन्कोडिंग गैर-गजिपी इकाई के लिए अलग है (यह सही बात है करने के लिए, कार्यान्वयन में बस एक बग है)। इस वजह से, ट्विटर से gzipped सामग्री को स्वीकार करने का अर्थ है कि यह कभी भी 304 नहीं भेजेगा, जो आपके अनुरोध की गणना को बढ़ाता है, और कई मामलों में gzip का उपयोग करने के दक्षता लाभ को कम करता है।

इसलिए, यदि आप gzip स्वीकार कर रहे हैं (आपकी वेब-लाइब्रेरी डिफ़ॉल्ट रूप से ऐसा कर सकती है, तो देखें कि आप फिडलर जैसे टूल के साथ क्या देख सकते हैं, मैं केवल एक छोटा जावा ज्ञान वाला .NET लड़का हूं, जवाब दे रहा हूं ट्विटर के साथ ट्विटर कैसे व्यवहार करता है, इसलिए मुझे जावा वेब पुस्तकालयों के विवरण नहीं पता हैं), इसे बंद करने का प्रयास करें, और देखें कि यह चीजों में सुधार करता है या नहीं।

+0

सलाह के लिए धन्यवाद - मैं HTTP कैशिंग की जांच करूँगा और सुनिश्चित करूँगा कि मैं उचित रूप से कॉल को कैश कर रहा हूं। मैंने समस्या का एक बड़ा हिस्सा पहचानने में कामयाब रहा है क्योंकि मैं JSON ऑब्जेक्ट्स की सूची बना रहा था (उदाहरण के लिए, हालिया टाइमलाइन) मैं उन सभी डेटा को ला रहा था जिन पर आगे की आवश्यकता हो सकती है (उदाहरण के लिए प्रत्येक अपडेट के लिए समयरेखा मैं सभी उपयोगकर्ता जानकारी जैसे नाम/विवरण/संख्या अनुयायियों आदि ला रहा था)। मैंने इसे बदल दिया है, इसलिए यह केवल सूची के लिए मूल डेटा प्राप्त करता है और फिर आवश्यक होने पर "आलसी" आगे डेटा प्राप्त करता है। फिर से धन्यवाद! – rhinds

+0

एफडब्ल्यूआईडब्ल्यू, मैंने 304 और जीजीआईपी के बीच बातचीत के साथ बग की सूचना दी। चूंकि यह एक अपाचे बग है, इसलिए शायद यह उनके स्तर पर तय नहीं किया जा रहा है। जब मैंने ट्विटर में यह खोजा तो अपाचे बग अपाचे पर पहले से ही ज्ञात था। –

1

ट्विटर के सर्वर से लगभग हर प्रकार के पढ़ने (यानी HTTP GET को कॉल करने वाला कुछ भी) अनुरोध के रूप में गिना जाता है। उपयोगकर्ता समयरेखा, रीट्वीट, प्रत्यक्ष संदेश प्राप्त करना, उपयोगकर्ता डेटा प्राप्त करना प्रत्येक को 1 अनुरोध के रूप में गिना जाता है। बहुत अधिक एकमात्र ट्विटर एपीआई कॉल जो आपके एपीआई सीमा के खिलाफ गिनती किए बिना सर्वर से पढ़ता है, दर सीमा की स्थिति देखने के लिए जांच कर रहा है।

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