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

מפתחים באזור הכלכלי האירופי (EEA)

‫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 הוא כזה:

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

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

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