सिंक्रोनस और एसिंक्रोनस एंडपॉइंट

Route Optimization API दो तरीके दिखाता है:

  • OptimizeTours एक सिंक्रोनस तरीका है, जो OptimizeToursRequest के जवाब में ऑप्टिमाइज़ किया गया रास्ता दिखाता है. अनुरोध प्रोसेस होने और OptimizeToursResponse या गड़बड़ी का मैसेज मिलने तक, क्लाइंट को Route Optimization API से कनेक्ट रहना होगा.
  • BatchOptimizeTours एक असाइनोक्रोनस तरीका है, जो एक या उससे ज़्यादा OptimizeToursRequest और उनसे जुड़े OptimizeToursResponse मैसेज के लिए यूआरआई स्वीकार करता है. साथ ही, लंबे समय तक चलने वाले ऑपरेशन (एलआरओ) (REST, gRPC) के संसाधन का नाम दिखाता है. इसका इस्तेमाल, बैच पूरा होने की जांच करने के लिए किया जाता है. OptimizeToursRequest बैकग्राउंड में प्रोसेस किए जाते हैं, इसलिए क्लाइंट, Route Optimization API के साथ सिर्फ़ तब तक खुला कनेक्शन बनाए रखते हैं, जब तक BatchOptimizeToursRequest सबमिट करने या एलआरओ की स्थिति देखने के लिए GetOperation को कॉल करने की ज़रूरत होती है. BatchOptimizeTours, Google Cloud Storage से मिले अनुरोधों को पढ़ता है और उनके जवाब देता है.

उपयोग के उदाहरण

OptimizeTours, छोटे और आसान अनुरोधों को हल करने के लिए सुविधाजनक है. इसके अलावा, कुछ मिनट या उससे कम समय में हल किए जा सकने वाले अनुरोधों के लिए भी यह सुविधा काम की है. Route Optimization API से लंबे समय तक कनेक्शन बनाए रखने पर, कोई समाधान मिलने से पहले रुकावट आने का खतरा बढ़ जाता है.

BatchOptimizeTours, बड़े अनुरोधों और ऐसे अनुरोधों को भी मैनेज कर सकता है जिनके लिए हल करने में ज़्यादा समय लगता है. इसकी वजह यह है कि Route Optimization API से लंबे समय तक कनेक्शन बनाए रखने की ज़रूरत नहीं होती.

लंबे समय तक चलने वाले ऑपरेशन

किसी बैच के पूरा होने की स्थिति की जांच करने के लिए, GetOperation तरीके का इस्तेमाल करके, Route Optimization API से एलआरओ पढ़े जाते हैं. एलआरओ में एक done प्रॉपर्टी होती है, जिससे पता चलता है कि पूरे बैच की प्रोसेसिंग पूरी हो गई है या नहीं. साथ ही, इसमें एक error फ़ील्ड होता है, जो प्रोसेसिंग के दौरान हुई गड़बड़ियों की जानकारी देता है. अगर done सही है और कोई error मौजूद नहीं है, तो बैच पूरा हो गया है. error के मौजूद होने का मतलब है कि बैच में से कुछ या सभी आइटम प्रोसेस नहीं हो पाए.

BatchOptimizeTours अनुरोध की लाइफ़साइकल इस तरह की होती है:

  1. Route Optimization API को BatchOptimizeToursRequest सबमिट करें. इससे, किसी एलआरओ के रिसॉर्स का नाम दिखता है.
  2. LRO के रिस्पॉन्स में done या error प्रॉपर्टी दिखने तक, लौटाए गए LRO रिसॉर्स के नाम के साथ GetOperation को पोल करें.
  3. अगर done सही है और कोई गड़बड़ी नहीं है, तो BatchOptimizeTours अनुरोध में दिए गए Google Cloud Storage यूआरआई से OptimizeToursResponses पढ़ें. अगर error मौजूद है, तो गड़बड़ी की जांच करें और Google Cloud Storage में OptimizeToursRequest को अपडेट करें. साथ ही, गड़बड़ी के हिसाब से फिर से कोशिश करें.

OptimizeTours और BatchOptimizeTours अनुरोधों को कई तरीकों से भेजा जा सकता है. जैसे, कमांड लाइन से या क्लाइंट लाइब्रेरी का इस्तेमाल करके.

अगला लेख: एपीआई का अनुरोध करना