मैं Google मैप्स JS लाइब्रेरी (https: // Developers) का उपयोग करके जावास्क्रिप्ट से एक बैच जियोकोड चला रहा हूं। google.com/maps/documentation/javascript/)।

अनिवार्य रूप से मुझे आंतरायिक OVER_QUERY_LIMIT प्रतिक्रिया मिल रही है, इसलिए मैं अधिकतम थ्रूपुट सुनिश्चित करने के लिए उपयोग करने के लिए सबसे अच्छा एल्गोरिथ्म देख रहा हूं। मैंने डॉक्स से "10 / सेकंड" और "प्रतीक्षा 2 एस फिर कोशिश करें" पढ़ा है।

ये रहा सवाल ...

dev कंसोल में नेटवर्क मॉनिटर को देखकर ऐसा लगता है कि OVER_QUERY_LIMIT विफलताएं सर्वर से नहीं आ रही हैं। सर्वर के माध्यम से प्राप्त सभी अनुरोधों को सही ढंग से हल किया जा रहा है। तो, क्या Google JS लाइब्रेरी अपनी थ्रॉटलिंग कर रही है और उस OVER_QUERY_LIMIT को वापस कर रही है, और यदि ऐसा है, तो क्या यह थ्रॉटल का उपयोग कर रहा है?

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

0
pinoyyid 24 नवम्बर 2015, 18:58

2 जवाब

सबसे बढ़िया उत्तर

मैंने कुछ परीक्षण किए, ऐसा लगता है कि Google क्लाइंट पक्ष में थ्रॉटल अनुरोध करता है।

मैंने 2 बिंदुओं के बीच दिशा-निर्देश प्राप्त करने के लिए प्रत्येक 10ms पर एक अंतराल निर्धारित किया है, यहाँ आउटपुट है:

VM5503:1 [Object, "OK", 1449067457886]
VM5503:1 [null, "OVER_QUERY_LIMIT", 1449067457888]
VM5503:1 [null, "OVER_QUERY_LIMIT", 1449067457895]
VM5503:1 [null, "OVER_QUERY_LIMIT", 1449067457904]
VM5503:1 [null, "OVER_QUERY_LIMIT", 1449067457914]
VM5503:1 [null, "OVER_QUERY_LIMIT", 1449067457924]
VM5503:1 [null, "OVER_QUERY_LIMIT", 1449067457934]
VM5503:1 [null, "OVER_QUERY_LIMIT", 1449067457944]
VM5503:1 [null, "OVER_QUERY_LIMIT", 1449067457954]
VM5503:1 [null, "OVER_QUERY_LIMIT", 1449067457964]
 .............
VM5503:1 [null, "OVER_QUERY_LIMIT", 1449067458855]
VM5503:1 [null, "OVER_QUERY_LIMIT", 1449067458864]
VM5503:1 [null, "OVER_QUERY_LIMIT", 1449067458876]
VM5503:1 [null, "OVER_QUERY_LIMIT", 1449067458898]
VM5503:1 [Object, "OK", 1449067458903]

जैसा कि आप केवल पहले एक और आखिरी को देख सकते हैं, यहाँ सफल है और समय का अंतर है: 1017ms। इन अनुरोधों में से केवल 2 वास्तव में Google सर्वर को हिट करते हैं।

मैंने जियोकोडिंग सेवा के लिए एक ही प्रक्रिया की थी - निष्कर्ष समान है, बस सफल जियोकोडिंग के बीच का समय लगभग 2000-2250ms है। दूसरी ओर, पहले 5 अनुरोधों के लिए कोई अड़चन नहीं थी (ऐसा लगता है कि 'कुछ' समय के बाद रीसेट हो सकता है, शायद 10 एस)।

अंत में मुझे डॉक्स में इस बारे में कुछ नहीं मिला, सिवाय अर्थ के 'OVER_QUERY_LIMIT' - जो स्वयं व्याख्यात्मक - कोटा सीमा है। इसलिए ऊपर वर्णित व्यवहार पर लंबे समय तक भरोसा नहीं किया जा सकता है।

संपादित करें : समय सुसंगत प्रतीत होता है: यहां छवि विवरण दर्ज करें

शायद आपकी सेवा / वेबसाइट ने अधिक क्रूर थ्रॉटलिंग के लिए Google का ध्यान आकर्षित किया :)

0
FDIM 2 पद 2015, 18:33

Google मैप्स प्लेटफ़ॉर्म के नवीनतम उपयोग के लिए 16 जुलाई, 2018 तक अपडेट करें। कृपया दस्तावेज़ में कोटा अनुभाग को "नई क्वेरी प्रति सेकंड (QPS) सीमा और उपयोग कैप के लिए कोटा। यह प्रत्येक अलग-अलग API के लिए उपयोग कैप के लिए एक तालिका देता है जो लागू नहीं होती है। जावास्क्रिप्ट मैप्स एपीआई। इसलिए उदाहरण के लिए, मैं अपने प्रोजेक्ट में उन्नयन का उपयोग कर रहा हूं और मुझे यह सुनिश्चित करने की आवश्यकता है कि मैं एक सेकंड में अधिक से अधिक क्वेरी न करूं। ऐसा प्रतीत होता है कि दैनिक सीमाएं / कैप अब सीमित कारक नहीं हैं। संबंधित और संभावना। ब्याज की भी कीमत है: मैप्स, रूट और स्थानों के लिए मूल्य निर्धारण देखें

0
eesh 14 सितंबर 2018, 20:33