งานจะผ่านการเปลี่ยนแปลงหลายครั้งตลอดอายุของงานState
สถานะงานแบบครั้งเดียว
สำหรับคำของาน
one-time
งานของคุณจะเริ่มต้นในสถานะ
ENQUEUED
ในสถานะENQUEUED งานของคุณจะมีสิทธิ์แสดงทันทีที่ตรงตามข้อกำหนดของConstraintsและเวลาหน่วงเริ่มต้น
จากนั้นจะเปลี่ยนเป็นสถานะ
RUNNING และ
ขึ้นอยู่กับผลลัพธ์ของงาน อาจเปลี่ยนเป็น
SUCCEEDED
FAILED หรืออาจกลับไปเป็น
ENQUEUED หากผลลัพธ์เป็น
retry คุณยกเลิกงานได้ทุกเมื่อในกระบวนการนี้ ซึ่งจะทำให้งานเปลี่ยนไปอยู่ในสถานะCANCELLED
รูปที่ 1 แสดงวงจรของงานแบบครั้งเดียว พร้อมเหตุการณ์ที่อาจทำให้งานเปลี่ยนไปอยู่ในสถานะอื่น

รูปที่ 1 แผนภาพสถานะสำหรับงานแบบครั้งเดียว
SUCCEEDED, FAILED และ CANCELLED ทั้งหมดแสดงถึงสถานะสุดท้ายของ
งานนี้ หากผลงานของคุณอยู่ในสถานะใดสถานะหนึ่งต่อไปนี้
WorkInfo.State.isFinished()
จะแสดงค่าเป็นจริง
สถานะงานตามระยะเวลา
สถานะสำเร็จและล้มเหลวใช้ได้กับการดำเนินการแบบครั้งเดียวและการดำเนินการที่เชื่อมโยงกันเท่านั้น
สำหรับงานที่ทำเป็นระยะๆ
จะมีสถานะสุดท้ายเพียงสถานะเดียวคือ CANCELLED เนื่องจากงานที่ต้องทำเป็นระยะๆ
ไม่มีวันสิ้นสุด หลังจากเรียกใช้แต่ละครั้ง ระบบจะกำหนดเวลาใหม่โดยไม่คำนึงถึงผลลัพธ์ รูปที่
2 แสดงแผนภาพสถานะแบบย่อสำหรับงานที่ทำเป็นระยะ

รูปที่ 2 แผนภาพสถานะสำหรับงานที่ทำเป็นระยะ
สถานะถูกบล็อก
สถานะสุดท้ายที่เรายังไม่ได้พูดถึงคือ BLOCKED สถานะนี้ใช้กับงานที่จัดเรียงเป็นชุดหรือเป็นห่วงโซ่งาน Work
chains และแผนภาพสถานะของ Work
chains จะอธิบายไว้ในส่วนการเชื่อมโยงงาน
ขั้นตอนถัดไป
ในส่วนการจัดการงาน คุณจะได้ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีจัดการและตรวจสอบความคืบหน้าของงาน