Olivier Massot 1 år sedan
förälder
incheckning
f281a86262
1 ändrade filer med 37 tillägg och 0 borttagningar
  1. 37 0
      doc/cron.md

+ 37 - 0
doc/cron.md

@@ -0,0 +1,37 @@
+# Crons
+
+## La commande `ot:cron`
+
+Les taches planifiées (crons) sont éxecutées au moyen de la commande suivante, où jobs est le nom du job 
+à effectuer (ou une liste de noms de séparés par des virgules): 
+
+    bin/console ot:cron run <jobs>
+
+Pour lister les jobs disponibles : 
+
+    bin/console ot:cron list
+
+Pour plus d'informations : 
+
+    bin/console ot:cron --help
+
+> A noter: tous les jobs implémentent une méthode preview qui peut être exécutée en passant l'option -p, --preview 
+> à la commande.
+
+## Créer un nouveau job
+
+Pour ajouter une nouvelle tâche exécutable, créer simplement une nouvelle classe dans le répertoire src/Service/Cron/Job. 
+Cette classe doit hériter de \App\Service\Cron\BaseCronJob.
+
+Le nom du job sera déduit du nom de ce nouvel objet (`MyCron` deviendra `my-cron`)
+
+Cette classe devra implémenter les méthodes `preview` et `execute` telles que définies dans 
+l'interface \App\Service\Cron\CronjobInterface.
+
+La commande `ot:cron` s'occupera pour vous de :
+
+* locker le process pour interdire l'exécution simultanée de deux jobs du même nom
+* mesurer les temps d'exécution
+* assurer la gestion d'erreur du job
+* le logging et l'envoi d'un mail en cas d'erreur critique
+* le retour d'une valeur de succès ou d'erreur selon le résultat du job