|
@@ -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
|