Stany pracy

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.