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 יכול לטפל בבקשות גדולות יותר ובבקשות עם זמן פתרון ארוך יותר, כי הוא לא דורש חיבור לטווח ארוך ל-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 במגוון דרכים, משורת הפקודה או באמצעות ספריית לקוח.