Pour déclarer une tâche, il faut indiquer son nom et sa périodicité en secondes via le pipeline taches_generales_cron
:
function monplugin_taches_generales_cron($taches){
$taches['nomdelatache'] = 24*3600; // tous les jours
return $taches;
}
Cette tâche sera appelée au moment venu. Les traitements sont placés dans un fichier du répertoire genie/
, homonyme à la tâche (nomdelatache.php
) et disposant d’une fonction genie_nomdelatache_dist()
.
La fonction reçoit en argument la date à laquelle s’est réalisé le dernier traitement de cette tâche. Elle doit retourner un nombre :
- nul, si la tâche n’a rien à faire
- positif, si la tâche a été traitée
- négatif, si la tâche a commencé, mais doit se poursuivre. Cela permet d’effectuer des tâches par lots (pour éviter des timeout sur les exécutions des scripts PHP à cause de traitements trop longs). Dans ce cas là, la valeur absolue du nombre négatif indiqué doit être le timestamp de la dernière exécution de la tâche à partir duquel doit s’appliquer le délai spécifié dans le plugin taches_generales_cron pour définir le moment de la prochaine exécution.