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 של אופטימיזציית מסלולים.
פעולות ממושכות
קוראים את ה-LROs מ-Route Optimization API באמצעות ה-method GetOperation כדי לבדוק את סטטוס ההשלמה של אצווה. האובייקטים האלה כוללים מאפיין done שמציין אם העיבוד של כל האצווה הושלם, ושדה error שמדווח על שגיאות שנתקלו בהן במהלך העיבוד. אם הערך של done הוא true ולא מופיע error, המשמעות היא שהקבוצה הושלמה בהצלחה. הנוכחות של התג error מציינת שחלק מהעיבוד של הקבוצה נכשל או שכולו נכשל.
מחזור החיים האופייני של בקשת BatchOptimizeTours הוא כזה:
- שולחים
BatchOptimizeToursRequestאל Route Optimization API, שמחזיר את שם המשאב של LRO. - שולחים בקשת סקר
GetOperationעם שם משאב ה-LRO שמוחזר עד שהמאפייניםdoneאוerrorמופיעים בתגובת ה-LRO. - אם הערך של
doneהוא true ולא מוצגת שגיאה, צריך לקרוא אתOptimizeToursResponsesמכתובות ה-URI של Google Cloud Storage שצוינו בבקשהBatchOptimizeTours. אםerrorמופיע, בודקים את השגיאה, מעדכנים אתOptimizeToursRequestבהתאם ב-Google Cloud Storage ומנסים שוב לפי הצורך בהתאם לשגיאה שנצפתה.
אפשר לשלוח בקשות OptimizeTours ו-BatchOptimizeTours במגוון דרכים, משורת הפקודה או באמצעות ספריית לקוח.