किसी काम के लाइफ़टाइम में, उसमें कई State
बदलाव होते हैं.
एक बार इस्तेमाल होने वाली वर्क स्टेट
one-time
काम के अनुरोध के लिए, आपका काम ENQUEUED
स्थिति में शुरू होता है.
ENQUEUED
स्थिति में, आपका काम तब तक नहीं चलेगा, जब तक Constraints
और शुरुआती देरी से जुड़ी ज़रूरी शर्तें पूरी नहीं हो जातीं. इसके बाद, यह RUNNING
स्थिति में चला जाता है. इसके बाद, काम के नतीजे के आधार पर यह SUCCEEDED
, FAILED
या ENQUEUED
स्थिति में वापस जा सकता है. ऐसा तब होता है, जब नतीजा retry
हो. प्रोसेस के दौरान किसी भी समय, काम को रद्द किया जा सकता है. इसके बाद, यह CANCELLED
स्थिति में चला जाएगा.
पहली इमेज में, एक बार किए जाने वाले काम की प्रोसेस को दिखाया गया है. साथ ही, उन इवेंट के बारे में बताया गया है जिनकी वजह से यह प्रोसेस दूसरी स्थिति में पहुंच सकती है.
पहली इमेज. एक बार किए जाने वाले काम के लिए स्टेट डायग्राम.
SUCCEEDED
, FAILED
, और CANCELLED
, ये सभी इस काम की आखिरी स्थिति को दिखाते हैं. अगर आपका काम इनमें से किसी भी स्थिति में है, तो
WorkInfo.State.isFinished()
सही वैल्यू दिखाता है.
बार-बार होने वाले काम की स्थितियां
सफल और असफल स्थितियां सिर्फ़ एक बार किए जाने वाले काम और चेन वाले काम पर लागू होती हैं.
बार-बार होने वाले काम के लिए, सिर्फ़ एक टर्मिनल स्थिति होती है: CANCELLED
. ऐसा इसलिए है, क्योंकि बार-बार होने वाला काम कभी खत्म नहीं होता. हर बार चलने के बाद, इसे फिर से शेड्यूल किया जाता है. भले ही, नतीजा कुछ भी हो. इस इमेज में, समय-समय पर किए जाने वाले काम के लिए, कंडेंस्ड स्टेट डायग्राम दिखाया गया है.
दूसरी इमेज. बार-बार होने वाले काम के लिए स्टेट डायग्राम.
ब्लॉक की गई स्थिति
एक आखिरी स्थिति के बारे में हमने अब तक नहीं बताया है. यह स्थिति BLOCKED
है. यह स्थिति, ऐसे काम पर लागू होती है जिसे एक सीरीज़ या चेन में व्यवस्थित किया जाता है. वर्कचेन और उनके स्टेट डायग्राम के बारे में चेनिंग वर्क में बताया गया है.
अगले चरण
काम मैनेज करना में, आपको अपने काम की प्रोग्रेस को मैनेज करने और मॉनिटर करने के तरीके के बारे में ज़्यादा जानकारी मिलेगी.