במסמך הזה מתוארת השירות של המשימות המתוזמנות ב-Fleet Engine. ההנחה היא שקראת את המאמר מהו Fleet Engine? ושאתם מודעים ליכולות הספציפיות של שירות Fleet Engine שדרושות לכם.
בזמן הקריאה של המסמך הזה, חשוב לזכור את הנקודות הבאות:
- אתם יוצרים משימות ומשייכים אותן לתחנה של רכב כדי ליצור מודל של השיוך בעולם האמיתי בין המשימה לבין המיקום שבו הרכב צפוי לעצור, כדי שהנהג יוכל להשלים את המשימה. מומלץ לקרוא את המאמר מבוא לכלי רכב כדי להבין טוב יותר איך כלי רכב פועלים ב-Fleet Engine.
- ה-Engine של Fleet למשימות מתוזמנות משתמש במשאבים הבאים:
Task
ו-DeliveryVehicle
. Fleet Engine מספק גם שירות gRPC וגם ממשקי API ל-REST:
מהי משימה מתוזמנת?
משימה מתוזמנת ב-Fleet Engine מייצגת פעולה ספציפית שעל הנהג לבצע באמצעות הרכב בהקשר הרחב יותר של פעילות התחבורה. הוא מגדיר את היעדים הספציפיים של הנהג. לדוגמה:
- כדי לספק טובין לבית מגורים
- לאסוף חבילה להחזרה למחסן המשלוח
- לעצור במיקום מסוים כדי לספק ללקוח שירות במקום
- כדי לבצע עצירה מתוזמנת לתדלוק הרכב
רכיבי משימות
בתמונה הבאה מוצגים רכיבי המשימה האלה במסלול מתוזמן רגיל של רכב.
שדות בסיסיים של משימות
שדה | תיאור |
---|---|
סוג | מגדיר את סוג הפעולה שמשויכת למשימה. |
מזהה המשימה | מחרוזת שמזהה באופן ייחודי את המשימה במערכת. |
המיקום המתוכנן | המיקום שבו צריך לבצע את המשימה. המיקום הזה לא תמיד זהה למיקום המתוכנן של עצירתו של הרכב. |
מדינה | מציין אם המשימה פתוחה או סגורה. |
תוצאת המשימה | מציין אם המשימה הצליחה או נכשלה. |
מודל נתונים למשימות
בתרשים הבא מוצג מודל הנתונים של המשאב Task
לצד התרשים של המשאב המשויך DeliveryVehicle
. אפשר לעיין בשני התרשימים כדי להבין את הקשרים בין שני המשאבים, תוך שמירה על הנקודות הבאות:
- מיקום מתוכנן: גם לתחנות הרכב וגם למשימות יש מיקומים מתוכננים, שונים זה מזה.
- במשימות, המיקום המתוכנן מציין איפה הפעולה של הנהג אמורה להתרחש. לדוגמה, אם צריך לשלוח 15 חבילות למתחם מגורים גדול, צריך לבצע את המסירה במיקומים שונים של חדרי דואר באותו מתחם.
- בעצירות של כלי רכב, המיקום המתוכנן מציין את העצירה של הרכב בזמן שהנהג משלים את המשימות. לדוגמה, רכב עוצר בכניסה למתחם דירות והנהג מסיר את החבילות ביד ומעביר אותן למחסני דואר נפרדים בתוך המתחם.
- מצב: גם למשימות וגם לתחנות עצירה של כלי רכב יש שדה מצב, שונה זה מזה.
- המצב של עצירתו של הרכב משקף את ההתקדמות של הרכב ביחס לעצירה, והוא משמש למטרות מעקב אחרי צי הרכב.
- המצב של המשימה מציין אם היא פעילה או לא. ההגדרה הזו משפיעה על פעולות אחרות שאפשר לבצע במשימות, כמו הגדרת התוצאה שלהן או הקצאה שלהן לרכב.
תוצאת המשימה: תוצאת המשימה היא שדה חשוב במודל הנתונים, כי היא משמשת לציון הצלחה או כישלון של משימה, ללא קשר למצב המשימה.
מזהים:
- כשמקצים משימה לרכב, מנוע Fleet מאכלס את השדה
deliveryVehicleId
. השדה הזה, לקריאה בלבד, מציין את הרכב שאליו משויכת המשימה. - מזהי המשימות הם מזהים ייחודיים לכל המשימות במערכת.
- מזהי מעקב מזהים משימה לצורך מעקב אחר משלוח.
- כשמקצים משימה לרכב, מנוע Fleet מאכלס את השדה
מודל הנתונים של Tasks
מודל נתוני הרכב
מזהי משימות
בדומה למזהי כלי רכב ב-Fleet Engine, כל משימה צריכה לכלול מזהה כדי להבדיל אותה ממשימה אחרת במערכת. אתם יכולים להפנות לכל המשימות בתהליך העבודה ולנהל אותן לפי המזהה שלהן. כדי ליצור את המזהים האלה, משתמשים בשירות CreateTaskRequest
ומספקים מחרוזת מזהה שתואמת לדרישות שמתוארות בקטע הזה.
לאחר מכן, המחרוזת הזו מהווה חלק משם משאב המשימה עצמו, שדה פלט בלבד באובייקט Task
. זה דומה לאופן שבו Fleet Engine יוצר משאבים של שמות רכבים. אפשר לעיין בקטע מתן שמות למשאבים במאמר מבוא ל-Fleet Engine.
נכס | תיאור |
---|---|
ייחודיות | כל מזהה משימה חייב להיות ייחודי בהטמעה של Fleet Engine כדי למנוע בלבול ולהבטיח זיהוי תקין. |
פורמט |
|
דוגמאות למזהי משימות טובים |
|
---|---|
מזהי משימות אסורים |
|
סוגי המשימות
Fleet Engine תומך בסוגים שונים של משימות שמייצגות פעולות שונות בתוך פעולת תחבורה. הם מתוארים כאן, יחד עם רמת החשיפה שלהם ופרטי החיוב.
סוג המשימה | תיאור | הרשאות גישה למעקב אחר משלוחים | החיוב בוצע |
---|---|---|---|
משימת העברה | משתמשים בה כדי למסור פריטים או להשלים משימה עבור לקוח. | הצרכנים יכולים לראות את המידע הזה ולעקוב אחריו. | כן |
משימת איסוף | השתמשו באפשרות הזו כדי לציין איסוף מוצרים מלקוח. לכל משימה של איסוף צריכות להיות משימות תואמות של מסירה. | הצרכנים יכולים לראות את המידע הזה ולעקוב אחריו. | לא |
משימה של חוסר זמינות | מצב שבו הרכב לא זמין לשירות, למשל כשהנהג/ת לוקח/ת הפסקה או ממלא/ת את מיכל הדלק. | לא גלויים לצרכנים. | לא |
משימה מתוזמנת להפסקה | משימה שאינה מסירה שדורשת עצירה במיקום ספציפי. אפשר להשתמש במשימות של עצירות מתוזמנות כדי לתזמן עצירות יומיות לאיסוף במקום ספציפי, ללא קשר למסירות או לאיסופים אחרים באותו מקום. אפשר גם ליצור משימות עצירה מתוזמנות לאיסוף מתיבת דואר או כדי ליצור מודל של העברות של כלי רכב מפידים או עצירות במרכזי שירות ובנקודות שירות. | הצרכנים לא יכולים לעקוב אחרי המשימה הספציפית הזו, אבל הם יכולים לראות אותה כחלק מהמעקב אחרי משימות אחרות. | לא |
מחזור החיים של משימות ותהליכים
בקטע הזה מפורטים פרטים על מחזור החיים של משימות העברה ב-Fleet Engine. מחזור החיים של המשימה מקושר למסלול הנסיעה של הרכב, כי הרכב צריך לנסוע אל עצירה כדי שהנהג יוכל להשלים משימה במיקום המתוכנן שלה.
1. יצירת משימות
כשיוצרים משימה בפעם הראשונה ב-Fleet Engine, מגדירים מגוון שדות למשימה בנפרד מהשיוך שלה לתחנה.
נכס | תיאור |
---|---|
מדינה | הגדרה לערך OPEN |
מזהים | מגדירים את המשימה ואת המזהה לצורכי מעקב אם אתם משתמשים במעקב אחר משלוחים בשביל הצרכנים שלכם. |
תזמון | משך הזמן המתוכנן של המשימה וחלון הזמן היעד שלה. לפרטים נוספים, אפשר לעיין במאמר תזמון משימות. |
המיקום המתוכנן | מגדירים את הקואורדינטות הגיאוגרפיות המדויקות שבהן המשימה צריכה להסתיים. |
2. הקצאת משימה
כשמקצים משימה לרכב, צריך לעשות זאת יחד עם עצירה של הרכב. עצירות הן קואורדינטות של קו הרוחב/קו האורך שמציינות את המיקום שבו הרכב חונה בזמן שהנהג משלים את המשימות שמשויכות לעצירה. תחנות הן בדרך כלל נקודות גישה, כמו רמפת טעינה או מיקום שצולם בדרך.
3. בתהליך
הסטטוס של המשימה יכול להיות 'פתוח' או 'סגור'. עם זאת, אחרי שמקצים משימה לרכב, אפשר לעקוב אחרי ההתקדמות שלה באמצעות השיוך שלה לרכב ואת המיקום של הרכב ביחס לתחנה שבה המשימה אמורה להתבצע.
אחרי שהרכב יוצא מהעצירה או מתחיל בנסיעה, הסטטוס של עצירה אמור להשתנות ל-ENROUTE
. כך, מעקב המשלוחים של הצרכנים יכול לעדכן את הנמען של המשימה לגבי מספר העצירות שנותרו וזמן ההגעה המשוער. הוא תומך גם בכל תצוגה חזותית בזמן אמת למעקב אחר משלוחים של צרכנים או למעקב אחרי צי כלי רכב.
4. הגעה ותוצאת המשימה
כשהרכב מגיע לתחנה, צריך להגדיר את סטטוס התחנה ל-ARRIVED
. בדומה לסטטוס ENROUTE
, הסטטוס הזה לא משפיע על המצב של המשימה עצמה, אבל הוא תומך גם בהתראות לצרכנים וגם בדיווח בזמן אמת על מעקב אחר צי הרכב שמפעילי הצי שלכם משתמשים בו. הוא גם מאפשר ניתוח נתונים מאוחר יותר ודוחות על הפעילות שלכם, שיעזרו לכם לבצע אופטימיזציה של ההעברה.
כשהרכב מגיע לתחנה, המערכת יכולה לטפל בשאר תהליך הביצוע של המשימה באחת מהגישות הבאות:
סגירת משימות לאחר השלמתן.
כשהנהג מסמן שהמשימה בוצעה, המערכת יכולה להסיר אותה מהעצירה, אבל להשאיר את העצירה עם משימות אחרות שהוקצו לה.
להסיר את כל עצירת הביניים מהרכב.
אחרי שהנהג מסמן שכל המשימות בוצעו והרכב בדרך לתחנה הבאה, אפשר להסיר את כל התחנה מהרכב. מערכת Fleet Engine סוגרת באופן אוטומטי את כל המשימות שמשויכות לתחנה שהוסרה.
סגירת משימה לא מעידה על הצלחה או כישלון
סגירת משימה מציינת רק שהמשימה לא נחשבת יותר כמשימה בתהליך.
למשימות במצב CLOSED
, מגדירים את התוצאה שלהן כ-SUCCEEDED
או
FAILED
. הדבר נחוץ גם כדי לציין את התוצאה בפועל במעקב אחר המשלוח וגם לצורך חיוב תקין. מערכת Fleet Engine מחייבת רק משימות מסירה בסטטוס 'הושלמה'.
אחרי שמגדירים את התוצאה של המשימה, אי אפשר לשנות אותה
כשמסמנים את התוצאה של משימה, מערכת Fleet Engine ממלאת באופן אוטומטי את המיקום של תוצאת המשימה במיקום הידוע האחרון של הרכב. עם זאת, אפשר לשנות את השעה ואת המיקום של תוצאת המשימה אחרי שהם מוגדרים, ו-Fleet Engine לא יחליף את השדות האלה.
5. תרחישים אחרים של משימות
לא כל המשימות שאתם יוצרים מודלים שלהן ב-Fleet Engine מתאימות לתהליך טיול או נסיעה טיפוסי. לדוגמה:
- Pickup tasks. כשיש משימה מסוג איסוף לחבילה שצריך להחזיר למחסן לצורך עיבוד מאוחר יותר, צריך ליצור משימה תואמת מסוג אספקה לחבילה הזו, ולהגדיר את המיקום המתוכנן למחסן. אחרת, משימות איסוף בדרך כלל עוברות את אותו תהליך כמו משימות מסירה.
- הקצאה מחדש של משימות. אי אפשר להקצות מחדש משימה לרכב אחר באופן ישיר. במקום זאת, כדי להעביר משימה מרכב אחד לרכב אחר, סוגרים את המשימה המקורית ואז יוצרים אותה מחדש לפני שמקצים אותה לרכב החדש. אם מעדכנים את סדר המשימות של משימה שכבר הוקצתה לרכב אחר, מערכת Fleet Engine תציג שגיאה.
- מחיקת משימות. בדומה לכלי רכב, משימות שלא מתעדכנות במשך שבעה ימים נמחקות מ-Fleet Engine. אם תנסו להשתמש שוב במזהה של משימה שנסגרה בעבר, מערכת Fleet Engine תחזיר הודעת שגיאה אם המזהה הזה היה בשימוש ב-7 הימים האחרונים. לעומת זאת, אם רוצים לשמור את נתוני המשימות למשך יותר משבעה ימים, צריך להטמיע את היכולת הזו בעצמכם, למשל באמצעות משימה מתוזמנת לאיפוס השעון של 7 הימים.
שיתוף ההתקדמות במשימה
ב-Fleet Engine אפשר לעקוב אחרי ההתקדמות של המשימות בזמן אמת ולשתף את המסלול של הנהג בשתי דרכים עיקריות:
- חוויית הלקוח – כדי שהלקוחות יוכלו לדעת מה סטטוס ההזמנות שלהם למשלוח או הזמנת השירות שהם ביקשו.
- מעקב אחרי צי כלי רכב כדי שמפעילי הצי יוכלו לעקוב אחרי הסטטוס של כלי הרכב בצי ולנתח אותו.
חוויית הצרכן
כדי לשתף את התקדמות המשימות, מגדירים את חוויית המשתמש באמצעות ה-SDK של JavaScript לצרכן. בעזרת ה-SDK תוכלו לשפר את חוויית השימוש החזותית באתר או באפליקציה לנייד, כדי שהלקוחות יוכלו לעקוב אחרי סטטוס המשלוח, לקבל זמני הגעה משוערים ולראות עדכוני מיקום בזמן אמת של כלי התובלה. סקירה כללית על משימות מתוזמנות ב-Consumer SDK
ה-SDK של הצרכן מכיל מפה של JavaScript ורכיבי נתונים לחיבור ל-Fleet Engine. המפה היא תחליף פשוט לאובייקט google.maps.Map
רגיל. הלקוח צריך לאמת את משתמשי הקצה ולהשתמש בתפקיד הצרכן Delivery מהפרויקט ב-Google Cloud כדי להחזיר רק מידע ספציפי ללקוח. מערכת Fleet Engine מסננת את כל המידע האחר בתשובות ומוחקת אותו. לדוגמה, במהלך משימה של זמן לא זמין, לא מתבצע שיתוף של פרטי המיקום עם משתמש קצה.
כדי לשתף עם הצרכן את התקדמות המשימה, מפעילים ב-Fleet Engine את ההגדרות הבאות:
- המשימות משתמשות במאפיין
TaskTrackingViewConfig
. אופציונלי. - המשימות משתמשות במזהה מעקב, שדרוש לספרייה כדי לזהות משימות רלוונטיות לצרכנים.
מעקב אחרי צי רכבים
באמצעות ספריית JavaScript למעקב אחרי ציי רכב אפשר להציג גרפית את המיקומים של כלי הרכב בצי כמעט בזמן אמת. הספרייה משתמשת ב-Fleet Engine API כדי לספק תצוגה חזותית של כלי הרכב להעברות ושל המשימות שהוקצו להם. בדומה ל-SDK של JavaScript לצרכן, הוא מכיל רכיב מפה של JavaScript שמשמש כתחליף לישויות google.maps.Map
רגילות, עם רכיבי נתונים שמשמשים לחיבור ל-Fleet Engine.
בספרייה הזו מוצגת החשיפה של כלי הרכב לצורכי מסירה ברגע שהם נוצרים ב-Fleet Engine. להטמעה הזו, משתמשים בתפקיד סופר משתמש ב-Cloud IAM של שירות Fleet Engine, ומספקים הצהרה על אסימון אינטרנט של Java כדי לגשת לכלי הרכב להעברה ולמשימות המשויכות אליהם.
תרחישים של משימות מתוזמנות
בקטע הזה מוצגים מגוון תרחישים של משימות שמסכמים את המידע שסופק עד כאן במדריך. המאמר הזה נועד לעזור לכם להבין את מגוון הדרכים שבהן אפשר ליצור מודלים של פעולות התחבורה ב-Fleet Engine, בהתאם לעסק שלכם.
משלוח עם מעקב
בתרחיש המסירה הזה מוצגת משימה של עצירה מתוזמנת שהוקצה למחסן גם ביציאה מהמחסן בתחילת המסע וגם בהגעה למחסן בסוף המסע. בנוסף, מוצגות שתי משימות מסירה בתחנה, שרק אחת מהן בוצעה. משתמשים בהקצאה הזו כדי לאפשר מעקב מהמחסן אליו ולהפך, וכדרך ליצור מודל של שעות ההתחלה והסיום באותו יום. אין חיוב על משימות עצירה מתוזמנות.
איסוף עם מסירה במרכז שירות
התרחיש הזה מראה איך ליצור מודל של איסוף עם המשימה המתאימה של מסירה. מגדירים את ההחזרה למחסן כמשלוח למטרות חיוב.

רכב להעברת נוסעים
בתרחיש הזה מוצגות שתי משלוחים עם עצירה מתוזמנת באמצע לרכב מטען. המטרה של העצירה היא לאפשר לרכב המשלוחים לחזור למחסן עם מספר חבילות למשלוח. אפשר גם ליצור מודל של כלי רכב להעברת נוסעים עם עצירה מתוזמנת.

תזמון המשימה
בניית מודלים של זמני המשימות עוזרת בתכנון מסלולים יעיל, בתזמון משוער להגעה ובניהול הציפיות של הלקוחות לגבי זמן האספקה. ל-Fleet Engine יש שתי פונקציות מפתח ליצירת מודלים של תזמון משימות ולחיזוי שלהן, כפי שמתואר בקטע הזה.
משך המשימה
משך המשימה מוגדר באמצעות השדה task_duration
, שדה חובה שמציג מודל של משך הזמן הצפוי שהנהג משקיע בהשלמת משימות בתחנה או בהפסקה. בתחנות, הפעילות הזו כוללת את כל הפעילויות הנדרשות אחרי שמגיעים לתחנה, כמו פריקה של חבילות ואינטראקציה עם הנמען. ככל שהמידע הזה יהיה ספציפי יותר, כך מערכת Fleet Engine תוכל לספק זמני הגעה משועריים מציאותיים יותר לתחנות הבאות במסלול.
פרטים על השדה מופיעים בקטע משך זמן במסמכי התיעוד של Protocol Buffers.
חלון הזמן היעד
זמן היעד מגדיר טווח זמן משוער לביצוע המשימה. בדרך כלל משתמשים בו כדי לתקשר עם לקוחות או למטרות תכנון פנימי. מגדירים את זה באמצעות השדה target_time_window
, שכולל שעת התחלה ושעת סיום.
הנתון הזה לא משפיע ישירות על חישובי המסלולים, אבל אפשר להשתמש בו במצבים כמו התראה לצרכנים על חלון זמן למסירת חבילה, או מתי לצפות להגיע של עובד שירות מתוזמן.
מאפייני משימות
מאפייני המשימות ב-Fleet Engine מספקים דרך נוחה לסנן משימות על סמך מאפיינים ספציפיים כשמשתמשים בבקשה ListTasks
. אפשר גם להשתמש במאפייני משימות מותאמים אישית לצורכי ניתוח נתונים באמצעות Cloud Logging, וגם להעביר מידע לצרכנים או למעקב אחרי צי כלי רכב. המטרה שלהם דומה למטרה של מאפייני הרכב: אפשר להשתמש בהם כדי ליצור תצוגה ממוקדת יותר של פעולות המסירה.
מגבלות
- יצירת מאפיינים מותאמים אישית: מספר המאפיינים המותאמים אישית שאפשר להגדיר לכל משימה מוגבל ב-Fleet Engine. כדי לבקש הגדלה של המגבלות האלה, צריך לפנות לנציג המכירות.
- יכולות סינון: מאפייני המשימות מספקים גמישות בסינון, אבל הם לא מחליפים את שדות הנתונים המרכזיים של המשימות. אפשר להשתמש בהם לסינון נוסף בהתאם לצרכים הספציפיים שלכם.
- לכל מאפיין צריך להיות מפתח ייחודי.
- אין לכלול פרטים אישיים מזהים או מידע רגיש אחר בערך המאפיין, כי יכול להיות שהם יהיו גלויים למשתמש.
- אימות נתונים: חשוב לוודא שסוגי הנתונים והפורמטים של המאפיינים המותאמים אישית תואמים לדרישות של Fleet Engine.