העבודה עוברת סדרה של שינויים במהלך משך החיים שלה.State
מצבי עבודה חד-פעמיים
כשמדובר בבקשת עבודה של one-time
, העבודה מתחילה במצב ENQUEUED
.
במצב ENQUEUED
, העבודה שלכם יכולה לפעול ברגע שמתקיימות הדרישות של Constraints
והתזמון של ההשהיה הראשונית. משם היא עוברת למצב RUNNING
, ואז, בהתאם לתוצאת העבודה, היא עשויה לעבור למצב SUCCEEDED
, FAILED
או אולי לחזור למצב ENQUEUED
אם התוצאה היא retry
. בכל שלב בתהליך אפשר לבטל את העבודה, ואז היא תעבור למצב CANCELLED
.
איור 1 מציג את מחזור החיים של עבודה חד-פעמית, עם האירועים שיכולים להעביר אותה למצב אחר.
איור 1. דיאגרמת מצבים לעבודה חד-פעמית.
SUCCEEDED
, FAILED
ו-CANCELLED
מייצגים מצב סופי של העבודה הזו. אם היצירה שלכם נמצאת באחד מהמצבים האלה,
WorkInfo.State.isFinished()
הפונקציה מחזירה את הערך true.
מצבי עבודה תקופתיים
מצבי ההצלחה והכישלון רלוונטיים רק לעבודות חד-פעמיות ולעבודות משורשרות.
בעבודה תקופתית, יש רק מצב סופי אחד, CANCELLED
. הסיבה לכך היא שעבודה תקופתית אף פעם לא מסתיימת. אחרי כל הרצה, התזמון שלה משתנה, בלי קשר לתוצאה. איור 2 מציג את דיאגרמת המצבים המצומצמת של עבודה תקופתית.
איור 2. תרשים מצבים לעבודה תקופתית.
מצב חסום
יש עוד מצב אחד שלא הזכרנו עדיין, והוא BLOCKED
. המצב הזה רלוונטי לעבודה שמנוהלת בסדרה או בשרשרת של עבודות. שרשראות עבודה ודיאגרמת המצב שלהן מוסברות במאמר Chaining work.
השלבים הבאים
בקטע ניהול העבודה מוסבר איך לנהל את העבודה ולעקוב אחרי ההתקדמות שלה.