File d'attente et exécution
Un flux d'automatisation ne s'exécute pas pendant l'enregistrement du document. Le déclenchement est d'abord placé dans une file d'attente. Une tâche en arrière-plan la traite ensuite.
Fonctionnement de la file d'attente
Le document File d'attente des déclencheurs (Automation Trigger Queue) contient une ligne par déclenchement en attente.
- À l'enregistrement, le moteur ajoute une ligne au statut « Pending ». Une ligne avec une date d'exécution future est au statut « Scheduled ».
- Après la validation de la transaction, une tâche de fond prend les lignes par lots. Une tâche planifiée passe aussi toutes les cinq minutes.
- Chaque ligne s'exécute dans son propre point de sauvegarde. Une erreur sur une ligne n'annule pas les autres lignes du lot.
- Une ligne terminée avec succès est supprimée. Une ligne « Failed » ou « Skipped » est conservée, puis supprimée par le nettoyage quotidien.
Pas de doublon
Un même flux ne peut avoir qu'une ligne en attente par document. Exemple : un utilisateur enregistre un client deux fois en dix secondes. Le moteur garde une seule ligne et la met à jour avec le dernier déclenchement. Le flux s'exécute une fois, sur le document tel qu'il est au moment du traitement.
Boucles
Un flux peut modifier un document qui déclenche un autre flux. Le moteur compte cette profondeur. Au-delà de la Profondeur maximale de récursivité (3 par défaut), il refuse le déclenchement et l'inscrit dans le journal des erreurs.
Suivre les exécutions
Le document Exécution d'automatisation (Automation Run) trace chaque exécution d'un flux. Il contient :
- le statut : « Running », « Waiting », « Success », « Partiellement en échec », « Failed » ou « Skipped » ;
- le document de référence et l'utilisateur d'exécution ;
- les heures de début et de fin ;
- un résumé de l'erreur ;
- la table Étapes, avec le statut, la durée, le message et la trace d'erreur de chaque étape.
Une exécution « Waiting » attend la fin d'une étape « Wait » ou « WaitForEvent ».
Les exécutions sont supprimées après 30 jours par défaut. Changez cette durée dans Paramètres des journaux (Log Settings).
Paramètres d'automatisation
Ouvrez Paramètres d'automatisation (Automation Settings) avec la recherche (Ctrl+K).
| Champ | Valeur par défaut | Rôle |
|---|---|---|
| Désactiver les automatisations | Décoché | Arrête tous les déclenchements du site. Les lignes déjà en file restent en place. |
| Profondeur maximale de récursivité | 3 | Nombre de fois qu'un flux peut en déclencher un autre. |
| Seuil d'échec | 10 | Nombre d'échecs consécutifs avant la désactivation automatique du flux. |
| Minutes avant blocage d'une exécution | 30 | Durée après laquelle une ligne bloquée en « Running » est remise en file. |
| Nombre maximal de tentatives | 3 | Nombre de nouvelles tentatives quand l'exécution échoue hors des étapes du flux. |
| Drain Seconds | 0 | Durée de traitement d'une tâche de fond. 0 la calcule à partir du délai de la file. |
| Valider en base toutes les | 50 | Nombre de lignes traitées entre deux validations en base. |
| Jours de conservation de la file | 7 | Durée de conservation des lignes « Failed » et « Skipped ». |
| Taille maximale de sortie d'une étape | 65536 | Taille maximale, en octets, de la sortie d'une étape transmise aux suivantes. |
| Event Payload Limit | 65536 | Taille maximale, en octets, des données d'un événement personnalisé. |
| Autoriser les événements non déclarés | Décoché | Accepte les événements qu'aucune application n'a déclarés. |