[{"data":1,"prerenderedAt":574},["ShallowReactive",2],{"\u002Fnext\u002Fdodock\u002Ffonctionnalites\u002Foutils\u002Ftaches-planifiees":3,"section:\u002Fnext\u002Fdodock\u002Ffonctionnalites\u002Foutils\u002Ftaches-planifiees":573},{"id":4,"title":5,"body":6,"description":555,"extension":556,"meta":557,"navigation":463,"path":569,"seo":570,"stem":571,"__hash__":572},"docs\u002F2.next\u002F3.dodock\u002F04.fonctionnalites\u002F5.outils\u002Ftaches-planifiees.md","Gérer les tâches planifiées",{"type":7,"value":8,"toc":546},"minimark",[9,13,22,27,38,42,57,172,179,193,197,248,259,345,349,359,395,405,410,418,442,491,511,515,536,542],[10,11,5],"h1",{"id":12},"gérer-les-tâches-planifiées",[14,15,16,17,21],"p",{},"Le planificateur lance des tâches à intervalle régulier : envoi des emails en file d'attente, répétitions automatiques, nettoyage des journaux… Chaque tâche est un ",[18,19,20],"strong",{},"Type de tâche de fond programmée",". Les applications déclarent ces tâches. Dokos crée les fiches à chaque migration : vous ne pouvez pas en créer une à la main. Pour ajouter votre propre tâche, utilisez un script serveur planifié.",[23,24,26],"h2",{"id":25},"prérequis","Prérequis",[28,29,30],"ul",{},[31,32,33,34,37],"li",{},"Le rôle ",[18,35,36],{},"Gestionnaire système",".",[23,39,41],{"id":40},"consulter-et-régler-une-tâche","Consulter et régler une tâche",[43,44,45,50],"ol",{},[31,46,47,48,37],{},"Ouvrez la recherche (Ctrl+K) et saisissez ",[18,49,20],{},[31,51,52,53,37],{},"Ouvrez une tâche, par exemple ",[54,55,56],"code",{},"frappe.email.queue.flush",[58,59,60,73],"table",{},[61,62,63],"thead",{},[64,65,66,70],"tr",{},[67,68,69],"th",{},"Champ",[67,71,72],{},"Rôle",[74,75,76,87,97,111,138,148,158],"tbody",{},[64,77,78,84],{},[79,80,81],"td",{},[18,82,83],{},"Méthode",[79,85,86],{},"La fonction Python lancée. Lecture seule.",[64,88,89,94],{},[79,90,91],{},[18,92,93],{},"Fréquence",[79,95,96],{},"Tous (toutes les quelques minutes), Toutes les heures, Quotidien, Hebdomadaire, Mensuel, Annuel, leurs variantes « Long » et « Maintenance », ou Cron. Lecture seule.",[64,98,99,104],{},[79,100,101],{},[18,102,103],{},"Format Cron",[79,105,106,107,110],{},"L'expression cron, pour la fréquence Cron. Exemple : ",[54,108,109],{},"0 3 * * *"," pour 3 h chaque jour.",[64,112,113,118],{},[79,114,115],{},[18,116,117],{},"File d'attente",[79,119,120,121,124,125,128,129,132,133,135,136,37],{},"Pour la fréquence Cron seulement : ",[54,122,123],{},"default",", ",[54,126,127],{},"short"," ou ",[54,130,131],{},"long",". Sans valeur, une tâche « Long » ou « Maintenance » va dans ",[54,134,131],{},", les autres dans ",[54,137,123],{},[64,139,140,145],{},[79,141,142],{},[18,143,144],{},"Arrêté",[79,146,147],{},"Cochez pour ne plus lancer la tâche.",[64,149,150,155],{},[79,151,152],{},[18,153,154],{},"Créer un journal",[79,156,157],{},"Garde une trace de chaque exécution. Toujours actif, sauf pour les fréquences Tous et Cron.",[64,159,160,169],{},[79,161,162,165,166],{},[18,163,164],{},"Dernière exécution"," \u002F ",[18,167,168],{},"Prochaine exécution",[79,170,171],{},"Les dates calculées par le planificateur.",[14,173,174,175,178],{},"Le menu ",[18,176,177],{},"Actions"," propose :",[28,180,181,187],{},[31,182,183,186],{},[18,184,185],{},"Exécuter"," : met la tâche en file d'attente tout de suite.",[31,188,189,192],{},[18,190,191],{},"Ignorer la prochaine exécution"," : saute la prochaine date prévue.",[23,194,196],{"id":195},"choisir-la-file-dattente","Choisir la file d'attente",[58,198,199,211],{},[61,200,201],{},[64,202,203,205,208],{},[67,204,117],{},[67,206,207],{},"Délai maximal par défaut",[67,209,210],{},"Usage",[74,212,213,225,236],{},[64,214,215,219,222],{},[79,216,217],{},[54,218,127],{},[79,220,221],{},"300 secondes",[79,223,224],{},"Tâches très courtes.",[64,226,227,231,233],{},[79,228,229],{},[54,230,123],{},[79,232,221],{},[79,234,235],{},"La plupart des tâches.",[64,237,238,242,245],{},[79,239,240],{},[54,241,131],{},[79,243,244],{},"1 500 secondes",[79,246,247],{},"Tâches longues : rapports lourds, nettoyage.",[14,249,250,251,254,255,258],{},"Une tâche qui dépasse ce délai est arrêtée et passe en échec. L'hébergeur peut changer ces délais dans ",[54,252,253],{},"common_site_config.json",", clé ",[54,256,257],{},"workers"," :",[260,261,266],"pre",{"className":262,"code":263,"language":264,"meta":265,"style":265},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"workers\": {\n    \"long\": {\n      \"timeout\": 3600\n    }\n  }\n}\n","json","",[54,267,268,277,295,310,327,333,339],{"__ignoreMap":265},[269,270,273],"span",{"class":271,"line":272},"line",1,[269,274,276],{"class":275},"sMK4o","{\n",[269,278,280,283,286,289,292],{"class":271,"line":279},2,[269,281,282],{"class":275},"  \"",[269,284,257],{"class":285},"spNyl",[269,287,288],{"class":275},"\"",[269,290,291],{"class":275},":",[269,293,294],{"class":275}," {\n",[269,296,298,301,304,306,308],{"class":271,"line":297},3,[269,299,300],{"class":275},"    \"",[269,302,131],{"class":303},"sBMFI",[269,305,288],{"class":275},[269,307,291],{"class":275},[269,309,294],{"class":275},[269,311,313,316,320,322,324],{"class":271,"line":312},4,[269,314,315],{"class":275},"      \"",[269,317,319],{"class":318},"sbssI","timeout",[269,321,288],{"class":275},[269,323,291],{"class":275},[269,325,326],{"class":318}," 3600\n",[269,328,330],{"class":271,"line":329},5,[269,331,332],{"class":275},"    }\n",[269,334,336],{"class":271,"line":335},6,[269,337,338],{"class":275},"  }\n",[269,340,342],{"class":271,"line":341},7,[269,343,344],{"class":275},"}\n",[23,346,348],{"id":347},"planifier-un-script-serveur","Planifier un script serveur",[14,350,351,352,355,356,358],{},"Les scripts serveur doivent être activés sur le serveur (clé ",[54,353,354],{},"server_script_enabled"," de ",[54,357,253],{},").",[43,360,361,367,374,380,388],{},[31,362,363,364,37],{},"Ouvrez la recherche et saisissez ",[18,365,366],{},"Script Serveur (Python)",[31,368,369,370,373],{},"Créez un script et choisissez le ",[18,371,372],{},"Type de script"," « Événement programmé ».",[31,375,376,377,37],{},"Choisissez la ",[18,378,379],{},"Fréquence de l'événement",[31,381,382,383,385,386,37],{},"Pour la fréquence Cron, saisissez le ",[18,384,103],{}," et, si besoin, la ",[18,387,117],{},[31,389,390,391,394],{},"Saisissez le ",[18,392,393],{},"Script",", puis enregistrez.",[14,396,397,398,400,401,404],{},"Dokos crée alors le ",[18,399,20],{}," lié au script. Cochez ",[18,402,403],{},"Désactivé"," sur le script pour l'arrêter.",[406,407,409],"h3",{"id":408},"exemple","Exemple",[14,411,412,413,417],{},"Exemple fictif : chaque matin à 8 h, la société ",[414,415,416],"em",{},"Maison Verte SARL"," veut un email qui compte les factures de vente validées la veille.",[28,419,420,425,430,438],{},[31,421,422,424],{},[18,423,372],{}," : Événement programmé",[31,426,427,429],{},[18,428,379],{}," : Cron",[31,431,432,434,435],{},[18,433,103],{}," : ",[54,436,437],{},"0 8 * * *",[31,439,440,258],{},[18,441,393],{},[260,443,447],{"className":444,"code":445,"language":446,"meta":265,"style":265},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","hier = frappe.utils.add_days(frappe.utils.today(), -1)\nnombre = frappe.db.count(\"Sales Invoice\", {\"docstatus\": 1, \"posting_date\": hier})\n\nfrappe.sendmail(\n    recipients=[\"commercial@maisonverte.example\"],\n    subject=f\"Factures du {hier}\",\n    message=f\"{nombre} factures de vente validées.\",\n)\n","python",[54,448,449,454,459,465,470,475,480,485],{"__ignoreMap":265},[269,450,451],{"class":271,"line":272},[269,452,453],{},"hier = frappe.utils.add_days(frappe.utils.today(), -1)\n",[269,455,456],{"class":271,"line":279},[269,457,458],{},"nombre = frappe.db.count(\"Sales Invoice\", {\"docstatus\": 1, \"posting_date\": hier})\n",[269,460,461],{"class":271,"line":297},[269,462,464],{"emptyLinePlaceholder":463},true,"\n",[269,466,467],{"class":271,"line":312},[269,468,469],{},"frappe.sendmail(\n",[269,471,472],{"class":271,"line":329},[269,473,474],{},"    recipients=[\"commercial@maisonverte.example\"],\n",[269,476,477],{"class":271,"line":335},[269,478,479],{},"    subject=f\"Factures du {hier}\",\n",[269,481,482],{"class":271,"line":341},[269,483,484],{},"    message=f\"{nombre} factures de vente validées.\",\n",[269,486,488],{"class":271,"line":487},8,[269,489,490],{},")\n",[14,492,493,494,497,498,501,502,505,506,37],{},"Le script s'exécute tel quel, sans fonction ",[54,495,496],{},"def execute()",". Les instructions ",[54,499,500],{},"import"," sont interdites : utilisez l'objet ",[54,503,504],{},"frappe"," fourni. Voir ",[507,508,510],"a",{"href":509},"\u002Fnext\u002Fdodock\u002Ffonctionnalites\u002Fpersonnalisations\u002Fserver_script","Scripts serveur",[23,512,514],{"id":513},"surveiller-les-exécutions","Surveiller les exécutions",[43,516,517,522,529],{},[31,518,363,519,37],{},[18,520,521],{},"Journal des tâches de fonds programmées",[31,523,524,525,528],{},"Filtrez sur le ",[18,526,527],{},"Statut"," : Démarrer, Planifié, Terminer ou Échoué.",[31,530,531,532,535],{},"Ouvrez une ligne. ",[18,533,534],{},"Détails"," contient la trace de l'erreur en cas d'échec.",[14,537,538,539,358],{},"Les journaux sont supprimés après 7 jours par défaut (",[18,540,541],{},"Paramètres des journaux",[543,544,545],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":265,"searchDepth":272,"depth":279,"links":547},[548,549,550,551,554],{"id":25,"depth":279,"text":26},{"id":40,"depth":279,"text":41},{"id":195,"depth":279,"text":196},{"id":347,"depth":279,"text":348,"children":552},[553],{"id":408,"depth":297,"text":409},{"id":513,"depth":279,"text":514},"Surveiller, arrêter ou lancer les tâches planifiées de Dokos, et planifier un script serveur.","md",{"icon":558,"reviewed":463,"last_verified":559,"sources":560},"i-mdi-calendar-clock","2026-11-04",[561,562,563,564,565,566,567,568],"frappe\u002Fcore\u002Fdoctype\u002Fscheduled_job_type\u002Fscheduled_job_type.json","frappe\u002Fcore\u002Fdoctype\u002Fscheduled_job_type\u002Fscheduled_job_type.py","frappe\u002Fcore\u002Fdoctype\u002Fscheduled_job_log\u002Fscheduled_job_log.json","frappe\u002Fcore\u002Fdoctype\u002Fserver_script\u002Fserver_script.json","frappe\u002Fcore\u002Fdoctype\u002Fserver_script\u002Fserver_script.py","frappe\u002Futils\u002Fbackground_jobs.py","frappe\u002Futils\u002Fsafe_exec.py","frappe\u002Fhooks.py","\u002Fnext\u002Fdodock\u002Ffonctionnalites\u002Foutils\u002Ftaches-planifiees",{"title":5,"description":555},"2.next\u002F3.dodock\u002F04.fonctionnalites\u002F5.outils\u002Ftaches-planifiees","Ti4Tx7zLxpwSiiX7NEztVlr07ysknG9hUPttWxSxl0c",{},1793871768404]