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