W ciągu swojego działania usługa State przechodzi szereg zmian.
Jednorazowe stany pracy
W przypadku żądania służbowego one-time praca zaczyna się od stanu ENQUEUED.
W stanie ENQUEUED Twoje zadanie może zostać uruchomione, gdy tylko zostaną spełnione wymagania dotyczące czasu Constraints i początkowego opóźnienia. Następnie przechodzi do stanu RUNNING, a w zależności od wyniku pracy może przenieść się do SUCCEEDED, FAILED lub z powrotem do ENQUEUED, jeśli wynik to retry. Zadanie można anulować w dowolnym momencie procesu. Spowoduje to przejście do stanu CANCELLED.
Rysunek 1 przedstawia życie jednorazowej pracy i wydarzeń, które mogą ją zmienić.

Rysunek 1. Schemat stanu pracy jednorazowej.
SUCCEEDED, FAILED i CANCELLED reprezentują stan końcowy na potrzeby tej pracy. Jeśli Twoje zadanie znajduje się w którymś z tych stanów, WorkInfo.State.isFinished() zwraca wartość „true”.
Stany okresowe pracy
Stany powodzenia i niepowodzenia dotyczą tylko pracy jednorazowej i łańcuchowej.
W przypadku pracy okresowej występuje tylko 1 stan końcowy: CANCELLED. Dzieje się tak, ponieważ praca okresowa
nigdy się nie kończy. Po każdym uruchomieniu jest on ustawiany na nowo niezależnie od wyniku. Rysunek 2 przedstawia schemat stanu skondensowanego dla pracy okresowej.

Rysunek 2. Schemat stanu pracy okresowej.
Stan zablokowania
Istnieje jeden stan końcowy, o którym jeszcze nie wspominaliśmy, a to BLOCKED. Dotyczy to utworów administrowanych w ramach serii lub łańcucha utworów. Łańcuchy zadań i ich diagram stanu zostały opisane w sekcji Praca z łańcuchami.
Dalsze kroki
Z sekcji Zarządzanie pracą dowiesz się więcej o zarządzaniu postępem pracy i monitorowaniu go.