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