एक बार में कई विकल्पों को ऑप्टिमाइज़ करने वाले एपीआई के तरीके

इस गाइड में, 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