يمر العمل بسلسلة من تغييرات State
على مدار حياته.
حالات العمل لمرة واحدة
بالنسبة إلى طلب العمل على
one-time
،
يبدأ عملك بحالة ENQUEUED
.
في حالة ENQUEUED
، يكون عملك مؤهلاً للعرض فور استيفاء Constraints
ومتطلبات توقيت التأخير الأولي. ومن هناك، تنتقل إلى حالة
RUNNING
، ثم
اعتمادًا على نتيجة العمل، قد تنتقل إلى
SUCCEEDED
،
FAILED
، أو ربما إلى
ENQUEUED
إذا كانت النتيجة
retry
. يمكن إلغاء العمل في أي مرحلة
من مراحل العملية، وبعد ذلك سينتقل إلى الحالة
CANCELLED
.
يوضح الشكل 1 حياة العمل لمرة واحدة، مع الأحداث التي قد تنقله إلى حالة أخرى.
الشكل 1. مخطط حالة للعمل لمرة واحدة.
تمثّل كل من SUCCEEDED
وFAILED
وCANCELLED
حالة طرفية لهذا العمل. وإذا كان عملك في أي من هذه الحالات، ستعرض
WorkInfo.State.isFinished()
صحيحًا.
حالات العمل الدورية
تنطبق حالات النجاح والفشل فقط على
العمل المتسلسل لمرة واحدة.
بالنسبة للعمل الدوري،
هناك حالة طرفية واحدة فقط، وهي CANCELLED
. ذلك لأن العمل الدوري
لا ينتهي أبدًا. بعد كل جولة، تتم إعادة جدولتها، بغض النظر عن النتيجة. يوضّح الشكل 2 مخطط الحالة المضغوط للعمل الدوري.
الشكل 2. مخطط حالة للعمل الدوري.
حالة الحظر
هناك حالة أخيرة لم نذكرها بعد، وهي "BLOCKED
". تنطبق هذه الحالة على العمل الذي يتم تنسيقه في سلسلة أو سلسلة عمل. يتم تناول سلاسل
العمل ومخطط الحالة الخاص بها في
أعمال السلسلة.
الخطوات التالية
في إدارة العمل، ستتعرف على المزيد حول كيفية إدارة تقدم عملك ومراقبته.