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