Il lavoro subisce una serie di State
modifiche nel corso della sua durata.
Stati del lavoro una tantum
Per una richiesta di lavoro one-time
, il tuo lavoro inizia in uno stato ENQUEUED
.
Nello stato ENQUEUED
, il tuo lavoro può essere eseguito non appena vengono soddisfatti i requisiti relativi a
Constraints
e alla tempistica di ritardo iniziale. Da lì passa allo stato RUNNING
e, a seconda del risultato, può passare a SUCCEEDED
, FAILED
o eventualmente tornare aENQUEUED
se il risultato è retry
. In qualsiasi
momento del processo, il lavoro può essere annullato, a quel punto il lavoro passerà allo stato
CANCELLED
.
La figura 1 illustra il ciclo di vita del lavoro una tantum, con gli eventi che potrebbero portarlo a un altro stato.
Figura 1. Diagramma di stato per il lavoro una tantum.
SUCCEEDED
, FAILED
e CANCELLED
rappresentano tutti uno stato del terminale per questa operazione. Se il tuo lavoro si trova in uno di questi stati,
WorkInfo.State.isFinished()
restituisce true.
Stati dei lavori periodici
Gli stati Successo e Non riuscito si applicano solo al lavoro una tantum e
concatenato.
Per le operazioni periodiche è disponibile un solo stato di terminale, CANCELLED
. Questo perché il lavoro periodico
non ha mai fine. Dopo ogni esecuzione, questa viene ripianificata, indipendentemente dal risultato. La Figura
2 mostra il diagramma dello stato condensato per il lavoro periodico.
Figura 2. Diagramma di stato per il lavoro periodico.
Stato bloccato
C'è un ultimo stato che non abbiamo ancora menzionato, ovvero BLOCKED
. Questo
stato si applica alle opere orchestrate in una serie o catena di opere. Le catene di lavoro e il relativo diagramma di stato sono trattati nell'articolo Lavoro di china.
Passaggi successivi
In Gestione del lavoro, scoprirai di più su come gestire e monitorare l'avanzamento del lavoro.