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