נקודות קצה סינכרוניות ואסינכרוניות

ב-Route Optimization API מוצגות שתי שיטות:

  • OptimizeTours היא שיטה סינכרונית שמחזירה מסלול מותאם בתגובה ל-OptimizeToursRequest. הלקוחות צריכים לשמור על חיבור פתוח ל-Route Optimization API עד שהבקשה תעובד ותוחזר OptimizeToursResponse או שגיאה.
  • BatchOptimizeTours היא שיטה אסינכררונית שמקבלת מזהי URI של הודעה אחת או יותר מסוג OptimizeToursRequest והודעות OptimizeToursResponse תואמות, ומחזירה את שם המשאב של פעולה ממושכת (LRO) (REST, ‏ gRPC) שמשמשת לבדיקת השלמת האצווה. הודעות ה-OptimizeToursRequest עוברות עיבוד ברקע, כך שהלקוחות שומרים על חיבורים פתוחים ל-Route Optimization API רק למשך הזמן הנדרש לשליחת ה-BatchOptimizeToursRequest או לקריאה ל-GetOperation כדי לבדוק את סטטוס ה-LRO. BatchOptimizeTours קורא בקשות מ-Google Cloud Storage וכותב תשובות אליו.

תרחישים לדוגמה

OptimizeTours שימושי לפתרון בקשות קטנות ופשוטים, או לבקשות שזמן הטיפול בהן הוא כמה דקות או פחות. שמירה על חיבורים לטווח ארוך ל-Route Optimization API מגדילה את הסיכון להפרעה לפני קבלת פתרון.

BatchOptimizeTours יכול לטפל בבקשות גדולות יותר ובבקשות עם זמן פתרון ארוך יותר, כי הוא לא מחייב חיבור לטווח ארוך ל-Route Optimization API.

פעולות ממושכות

כדי לבדוק את סטטוס השלמת האצווה, קוראים את ה-LROs מ-Route Optimization API באמצעות השיטה GetOperation. בקשות LRO כוללות את המאפיין done שמציין אם העיבוד של כל האצווה הושלם, ואת השדה error שמדווח על שגיאות שנתקלו בהן במהלך העיבוד. אם הערך של done הוא True ואין ערך של error, האצווה הושלמה בהצלחה. אם הערך הוא error, סימן שחלק מהקבוצה או כולה נכשלו בעיבוד.

מחזור החיים האופייני של בקשה מסוג BatchOptimizeTours הוא:

  1. שולחים BatchOptimizeToursRequest ל-Route Optimization API, שמחזיר את שם המשאב של LRO.
  2. בודקים את GetOperation עם שם המשאב של ה-LRO שהוחזר עד שהמאפיינים done או error מופיעים בתשובה של ה-LRO.
  3. אם הערך של done הוא TRUE ואין שגיאה, קוראים את OptimizeToursResponses מה-URI של Google Cloud Storage שצוין בבקשה BatchOptimizeTours. אם השדה error קיים, בודקים את השגיאה, מעדכנים את השדות OptimizeToursRequest בהתאם ב-Google Cloud Storage ומנסים שוב בהתאם לשגיאה שנצפתה.

אפשר לשלוח בקשות OptimizeTours ו-BatchOptimizeTours בדרכים שונות, משורת הפקודה או באמצעות ספריית לקוח.

השלב הבא: שליחת בקשת API