สถานะการทำงาน

งานจะผ่านการเปลี่ยนแปลงหลายครั้งตลอดอายุของงาน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 จะอธิบายไว้ในส่วนการเชื่อมโยงงาน

ขั้นตอนถัดไป

ในส่วนการจัดการงาน คุณจะได้ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีจัดการและตรวจสอบความคืบหน้าของงาน