[{"data":1,"prerenderedAt":317},["ShallowReactive",2],{"\u002Fv5\u002Fdodock\u002Fpersonnalisation\u002Fautomatisations\u002Ffile-d-attente":3,"section:\u002Fv5\u002Fdodock\u002Fpersonnalisation\u002Fautomatisations\u002Ffile-d-attente":316},{"id":4,"title":5,"body":6,"description":299,"extension":300,"meta":301,"navigation":302,"path":312,"seo":313,"stem":314,"__hash__":315},"docs\u002F1.v5\u002F3.dodock\u002F03.personnalisation\u002F01.automatisations\u002Ffile-d-attente.md","File d'attente et exécution",{"type":7,"value":8,"toc":287},"minimark",[9,13,18,26,30,46,51,54,58,65,69,75,97,100,107,111,117,279],[10,11,12],"p",{},"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.",[14,15,17],"h2",{"id":16},"fonctionnement-de-la-file-dattente","Fonctionnement de la file d'attente",[10,19,20,21,25],{},"Le document ",[22,23,24],"strong",{},"File d'attente des déclencheurs"," (Automation Trigger Queue) contient une ligne par déclenchement en attente.",[27,28,29],"mermaid",{},"\nsequenceDiagram\n    participant E as Déclencheur\n    participant Q as File d'attente\n    participant R as Exécution\n    participant D as Document\n    E->>Q: Ajoute ou met à jour une ligne\n    Q->>R: La tâche de fond prend les lignes par lots\n    R->>D: Exécute les étapes\n    R->>Q: Supprime la ligne terminée\n",[31,32,33,37,40,43],"ol",{},[34,35,36],"li",{},"À l'enregistrement, le moteur ajoute une ligne au statut « Pending ». Une ligne avec une date d'exécution future est au statut « Scheduled ».",[34,38,39],{},"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.",[34,41,42],{},"Chaque ligne s'exécute dans son propre point de sauvegarde. Une erreur sur une ligne n'annule pas les autres lignes du lot.",[34,44,45],{},"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.",[47,48,50],"h3",{"id":49},"pas-de-doublon","Pas de doublon",[10,52,53],{},"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.",[47,55,57],{"id":56},"boucles","Boucles",[10,59,60,61,64],{},"Un flux peut modifier un document qui déclenche un autre flux. Le moteur compte cette profondeur. Au-delà de la ",[22,62,63],{},"Profondeur de récursion maximale"," (3 par défaut), il refuse le déclenchement et l'inscrit dans le journal des erreurs.",[14,66,68],{"id":67},"suivre-les-exécutions","Suivre les exécutions",[10,70,20,71,74],{},[22,72,73],{},"Exécution d'automatisation"," (Automation Run) trace chaque exécution d'un flux. Il contient :",[76,77,78,81,84,87,90],"ul",{},[34,79,80],{},"le statut : « Running », « Waiting », « Success », « Partiellement en échec », « Failed » ou « Skipped » ;",[34,82,83],{},"le document de référence et l'utilisateur d'exécution ;",[34,85,86],{},"les heures de début et de fin ;",[34,88,89],{},"un résumé de l'erreur ;",[34,91,92,93,96],{},"la table ",[22,94,95],{},"Steps",", avec le statut, la durée, le message et la trace d'erreur de chaque étape.",[10,98,99],{},"Une exécution « Waiting » attend la fin d'une étape « Wait » ou « WaitForEvent ».",[10,101,102,103,106],{},"Les exécutions sont supprimées après 30 jours par défaut. Changez cette durée dans ",[22,104,105],{},"Paramètres des journaux"," (Log Settings).",[14,108,110],{"id":109},"paramètres-dautomatisation","Paramètres d'automatisation",[10,112,113,114,116],{},"Ouvrez ",[22,115,110],{}," (Automation Settings) avec la recherche (Ctrl+K).",[118,119,120,136],"table",{},[121,122,123],"thead",{},[124,125,126,130,133],"tr",{},[127,128,129],"th",{},"Champ",[127,131,132],{},"Valeur par défaut",[127,134,135],{},"Rôle",[137,138,139,153,165,178,191,203,216,229,242,255,267],"tbody",{},[124,140,141,147,150],{},[142,143,144],"td",{},[22,145,146],{},"Désactiver les automatisations",[142,148,149],{},"Décoché",[142,151,152],{},"Arrête tous les déclenchements du site. Les lignes déjà en file restent en place.",[124,154,155,159,162],{},[142,156,157],{},[22,158,63],{},[142,160,161],{},"3",[142,163,164],{},"Nombre de fois qu'un flux peut en déclencher un autre.",[124,166,167,172,175],{},[142,168,169],{},[22,170,171],{},"Seuil d'échec",[142,173,174],{},"10",[142,176,177],{},"Nombre d'échecs consécutifs avant la désactivation automatique du flux.",[124,179,180,185,188],{},[142,181,182],{},[22,183,184],{},"Minutes avant blocage d'une exécution",[142,186,187],{},"30",[142,189,190],{},"Durée après laquelle une ligne bloquée en « Running » est remise en file.",[124,192,193,198,200],{},[142,194,195],{},[22,196,197],{},"Nombre maximal de tentatives",[142,199,161],{},[142,201,202],{},"Nombre de nouvelles tentatives quand l'exécution échoue hors des étapes du flux.",[124,204,205,210,213],{},[142,206,207],{},[22,208,209],{},"Durée de vidage (secondes)",[142,211,212],{},"0",[142,214,215],{},"Durée de traitement d'une tâche de fond. 0 la calcule à partir du délai de la file.",[124,217,218,223,226],{},[142,219,220],{},[22,221,222],{},"Valider en base toutes les",[142,224,225],{},"50",[142,227,228],{},"Nombre de lignes traitées entre deux validations en base.",[124,230,231,236,239],{},[142,232,233],{},[22,234,235],{},"Jours de conservation de la file",[142,237,238],{},"7",[142,240,241],{},"Durée de conservation des lignes « Failed » et « Skipped ».",[124,243,244,249,252],{},[142,245,246],{},[22,247,248],{},"Taille maximale de sortie d'une étape",[142,250,251],{},"65536",[142,253,254],{},"Taille maximale, en octets, de la sortie d'une étape transmise aux suivantes.",[124,256,257,262,264],{},[142,258,259],{},[22,260,261],{},"Taille maximale des données d'événement",[142,263,251],{},[142,265,266],{},"Taille maximale, en octets, des données d'un événement personnalisé.",[124,268,269,274,276],{},[142,270,271],{},[22,272,273],{},"Autoriser les événements non déclarés",[142,275,149],{},[142,277,278],{},"Accepte les événements qu'aucune application n'a déclarés.",[280,281,284],"callout",{"color":282,"icon":283},"blue","i-heroicons-beaker",[10,285,286],{},"Le moteur d'automatisations est en phase bêta. Ses paramètres peuvent évoluer.",{"title":288,"searchDepth":289,"depth":290,"links":291},"",1,2,[292,297,298],{"id":16,"depth":290,"text":17,"children":293},[294,296],{"id":49,"depth":295,"text":50},3,{"id":56,"depth":295,"text":57},{"id":67,"depth":290,"text":68},{"id":109,"depth":290,"text":110},"Comprendre comment la file d'attente exécute les flux d'automatisation en arrière-plan, sans doublon, et comment suivre chaque exécution.","md",{"reviewed":302,"last_verified":303,"sources":304},true,"2026-11-04",[305,306,307,308,309,310,311],"frappe\u002Fautomation_engine\u002Fdispatch.py","frappe\u002Fautomation_engine\u002Fdrainer.py","frappe\u002Fautomation_engine\u002Frunner.py","frappe\u002Fautomation\u002Fdoctype\u002Fautomation_trigger_queue\u002Fautomation_trigger_queue.json","frappe\u002Fautomation\u002Fdoctype\u002Fautomation_run\u002Fautomation_run.json","frappe\u002Fautomation\u002Fdoctype\u002Fautomation_settings\u002Fautomation_settings.json","frappe\u002Fhooks.py","\u002Fv5\u002Fdodock\u002Fpersonnalisation\u002Fautomatisations\u002Ffile-d-attente",{"title":5,"description":299},"1.v5\u002F3.dodock\u002F03.personnalisation\u002F01.automatisations\u002Ffile-d-attente","kW0x90V37Inbogo7-_ofaIyl8ZQ-gDZw4GFvf8WHX-U",{},1793871985308]