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.