Le travail subit une série de modifications de State
au cours de sa durée de vie.
États de travail ponctuel
Pour une requête de travail one-time
, votre travail commence à l'état ENQUEUED
.
Dans cet état ENQUEUED
, votre travail peut s'exécuter dès que ses Constraints
et ses exigences de délai initial sont remplies. Il passe ensuite à l'état RUNNING
, puis, en fonction du résultat du travail, il peut passer à l'état SUCCEEDED
, FAILED
ou éventuellement revenir à ENQUEUED
si le résultat est retry
. À tout moment du processus, le travail peut être annulé. Il passe alors à l'état CANCELLED
.
La figure 1 illustre la vie d'un travail ponctuel, avec les événements qui peuvent l'amener à un autre état.
Figure 1 : Schéma d'état pour un travail ponctuel.
SUCCEEDED
, FAILED
et CANCELLED
représentent un état final pour ce travail. Si votre travail est dans l'un de ces états, WorkInfo.State.isFinished()
renvoie la valeur "true".
États de travail périodique
Les états "réussite" et "échec" ne s'appliquent qu'au travail ponctuel et enchaîné.
Pour le travail périodique, il n'y a qu'un seul état final, CANCELLED
. En effet, le travail périodique ne se termine jamais. Après chaque exécution, il est reprogrammé, quel que soit le résultat. La figure 2 illustre le schéma de l'état condensé pour le travail périodique.
Figure 2 : Schéma d'état pour le travail périodique.
État bloqué
Il existe un dernier état que nous n'avons pas encore mentionné, à savoir BLOCKED
. Cet état s'applique au travail orchestré en une série de tâches, ou de tâches enchaînées. Les chaînes de travail et leurs schémas d'état sont traités dans Travail enchaîné.
Étapes suivantes
Dans Gérer votre travail, vous découvrirez comment gérer et surveiller la progression de votre travail.