Les tâches planifiées permettent d'automatiser des processus récurrents dans Dokos, comme l'envoi de rapports, la synchronisation de données ou la maintenance du système.
frappe.email.queue.flush)0 3 * * * pour exécuter tous les jours à 3h)default, short, ou long)default, short, ou long)Dokos utilise trois files d'attente RQ avec des caractéristiques différentes :
| File d'attente | Timeout par défaut | Usage recommandé |
|---|---|---|
default | 300 secondes | Tâches courtes et fréquentes (ex: envoi d'emails, synchronisations légères) |
short | 60 secondes | Tâches très rapides (ex: vérifications de statut) |
long | 1800 secondes | Tâches longues (ex: génération de rapports complexes, nettoyage de base de données) |
long pour éviter les interruptions.long uniquement pour les tâches qui en ont vraiment besoin pour ne pas bloquer les workers.Scénario : La société Maison Verte SARL veut recevoir chaque matin à 8h un rapport des ventes de la veille.
rapport_ventes_quotidien :def execute():
from frappe.utils import today, add_days
from frappe.desk.query_report import run
hier = add_days(today(), -1)
data = run(
report_name="Ventes par client",
filters={"from_date": hier, "to_date": hier}
)
frappe.sendmail(
recipients=["commercial@maisonverte.fr"],
subject=f"Rapport des ventes du {hier}",
message="Voir le rapport en pièce jointe",
attachments=[{
"fname": f"ventes_{hier}.csv",
"fcontent": frappe.as_csv(data)
}]
)
0 8 * * *long (car la génération du rapport peut prendre plusieurs minutes)Si les timeouts par défaut ne suffisent pas, vous pouvez les configurer dans common_site_config.json :
{
"workers": {
"default": {
"timeout": 600
},
"short": {
"timeout": 120
},
"long": {
"timeout": 3600
}
}
}