작업 상태

작업은 전체 기간 동안 일련의 State 변경을 거칩니다.

일회성 작업 상태

one-time 작업 요청의 경우 작업이 ENQUEUED 상태에서 시작됩니다.

ENQUEUED 상태에서 작업은 Constraints 및 초기 지연 타이밍 요구사항이 충족되는 즉시 실행될 수 있습니다. 여기에서 작업은 RUNNING 상태로 이동하고 작업 결과에 따라 SUCCEEDED, FAILED 또는 결과가 retry라면 다시 ENQUEUED로 이동할 수 있습니다. 프로세스의 어떤 시점에서든 작업을 취소할 수 있고 작업은 취소 시점에서 CANCELLED 상태로 이동합니다.

그림 1은 작업을 다른 상태로 이동할 수 있는 이벤트가 포함된 일회성 작업의 수명 주기를 보여줍니다.

그림 1. 일회성 작업의 상태 다이어그램입니다.

SUCCEEDED, FAILED, CANCELLED는 모두 작업의 최종 상태를 나타냅니다. 작업이 이러한 상태에 있다면 WorkInfo.State.isFinished()가 true를 반환합니다.

주기적 작업 상태

성공 및 실패 상태는 일회성 및 체이닝된 작업에만 적용됩니다. 주기적 작업의 경우 최종 상태는 CANCELLED 하나만 있습니다. 주기적 작업은 종료되지 않기 때문입니다. 실행할 때마다 결과와 관계없이 작업이 다시 예약됩니다. 그림 2는 주기적 작업의 상태 다이어그램을 간략하게 보여줍니다.

그림 2. 주기적 작업의 상태 다이어그램입니다.

차단된 상태

아직 언급하지는 않았지만, 마지막으로 소개하는 최종 상태는 BLOCKED입니다. 이 상태는 일련의 작업 또는 작업 체인에서 조정된 작업에 적용됩니다. 작업 체인과 작업 체인의 상태 다이어그램은 작업 체이닝에서 다룹니다.

다음 단계

작업 관리에서는 작업 진행 상황을 관리하고 모니터링하는 방법을 자세히 알아봅니다.