इस गाइड में, OptimizeToursLongRunning और OptimizeToursUri एपीआई के तरीकों को एक्सपेरिमेंट के तौर पर लॉन्च करने के बारे में बताया गया है. इनकी मदद से उपयोगकर्ता, एक बार में ऑप्टिमाइज़ेशन के एक से ज़्यादा अनुरोध कर सकते हैं. नॉन-ब्लॉकिंग ऑप्टिमाइज़ेशन में, उपयोगकर्ता को उस तरीके से तुरंत एक Operation proto मिलता है जिसका इस्तेमाल GetOperation को कॉल करके, ऑप्टिमाइज़ेशन की स्थिति को रेफ़रंस करने के लिए किया जा सकता है.
ज़्यादा जानकारी के लिए, लंबे समय तक चलने वाले ऑपरेशन देखें.
ये नॉन-ब्लॉकिंग तरीके, ब्लॉकिंग OptimizeTours तरीके की तुलना में ज़्यादा भरोसेमंद होते हैं. ऐसा इसलिए, क्योंकि ऑप्टिमाइज़ेशन के दौरान क्लाइंट को सर्वर से कनेक्शन बनाए रखने की ज़रूरत नहीं होती. साथ ही, इन नए तरीकों से BatchOptimizeTours की तुलना में, गड़बड़ियों को डीबग करना आसान हो जाता है. ऐसा इसलिए, क्योंकि हर ऑप्टिमाइज़ेशन एक ही लंबे समय तक चलने वाली कार्रवाई (एलआरओ) से जुड़ा होता है.
जिन उपयोगकर्ताओं को ऑप्टिमाइज़ेशन के अनुरोध को इनलाइन करना है वे OptimizeToursLongRunning तरीके का इस्तेमाल कर सकते हैं. वहीं, जिन उपयोगकर्ताओं को Google Cloud Storage का इस्तेमाल करके अनुरोधों को अपलोड करना है और जवाब पढ़ना है वे OptimizeToursUri तरीके का इस्तेमाल कर सकते हैं.
OptimizeToursLongRunning
उदाहरण: OptimizeToursLongRunning का अनुरोध करना
अनुरोध करने से पहले, यहां दिए गए पैरामीटर को अपने एनवायरमेंट के हिसाब से सही वैल्यू से बदलें:
- पक्का करें कि आपने ऐप्लिकेशन के लिए डिफ़ॉल्ट क्रेडेंशियल कॉन्फ़िगर किए हों. इसके बारे में OAuth का इस्तेमाल करना लेख में बताया गया है.
PROJECT_NUMBER_OR_ID को अपने Cloud प्रोजेक्ट नंबर या आईडी पर सेट करें.
नीचे दी गई कमांड, Route Optimization API को
OptimizeToursLongRunningअनुरोध भेजती है. साथ ही, इससे जुड़ा ऑपरेशन आईडी मिलता है. कार्रवाई के स्टेटस के बारे में क्वेरी करने के लिए,GetOperationतरीके का इस्तेमाल किया जा सकता है. कार्रवाई पूरी होने के बाद, मेटाडेटा में फ़ाइनलOptimizeToursResponseभी शामिल होता है.curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeToursLongRunning' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ --data @- <<EOM { "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.42506261000996, "longitude": -122.09535511930135 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.42421503206021, "longitude": -122.09526063135228 } } ] } ], "vehicles": [ { "travelMode": "DRIVING", "costPerKilometer": 1.0 } ], } } EOM
OptimizeToursUri
BatchOptimizeTours की तरह, OptimizeToursUri का इस्तेमाल करके, Google Cloud Storage पर ऑप्टिमाइज़ेशन के अनुरोध और जवाब को सेव किया जा सकता है.
Cloud Storage यूआरआई को OptimizeToursUri अनुरोध मैसेज में शामिल करना ज़रूरी है.
Operation के तौर पर दिखाया गया स्टेटस, सिर्फ़ सबमिट किए गए एक OptimizeToursRequest से जुड़ा होता है.
उदाहरण: OptimizeToursUri का अनुरोध करना
अनुरोध करने से पहले, यहां दिए गए पैरामीटर को अपने एनवायरमेंट के हिसाब से सही वैल्यू से बदलें:
- पक्का करें कि आपने ऐप्लिकेशन के लिए डिफ़ॉल्ट क्रेडेंशियल कॉन्फ़िगर किए हों. इसके बारे में OAuth का इस्तेमाल करना लेख में बताया गया है.
PROJECT_NUMBER_OR_ID को अपने Cloud प्रोजेक्ट नंबर या आईडी पर सेट करें.
नीचे दी गई कमांड, Route Optimization API को
OptimizeToursUriअनुरोध भेजती है. साथ ही, इससे जुड़ा ऑपरेशन आईडी मिलता है. कार्रवाई की स्थिति के बारे में क्वेरी करने के लिए,GetOperationतरीके का इस्तेमाल करें. ऑपरेशन पूरा होने के बाद,OptimizeToursResponseको अनुरोध में दिए गए आउटपुट यूआरआई पाथ पर रिमोटली सेव किया जाता है.curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeToursUri' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ --data @- <<EOM { "input": { "uri": "gs://bucket/path/input/object.json" }, "output": { "uri": "gs://bucket/path/output/object.json" } } EOM