États des tâches

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.