Selon la doc sur programmer, Il est possible d’exécuter une tâche périodique en plusieurs lots pour éviter les timeout.
Pour ce faire on peut lui dire de se relancer en retournant un entier négatif.
Jusque là tout va bien, j’arrive à suivre.
Par contre, je suis pas sûr de comprendre quelle valeur il faut donner en retour selon les cas de figures, je pige pas l’explication dans la doc.
Au départ on avait ceci :
Dans ce cas là, le nombre négatif indiqué correspond au nombre de secondes d’intervalle pour la prochaine exécution.
Puis ça a été modifié en novembre 2020 comme ça :
Dans ce cas là, la valeur absolue du nombre négatif indiqué correspond au 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
Ça semble dire 2 choses différentes, je suis perdu.
En mettant mon nez dans le code de certains plugins et leurs commentaires, je comprends ceci pour l’instant :
- Pour relancer tout de suite, on garde le même timestamp :
return (0 - $t)
(exemple mailshot) - Pour relancer tout de suite mais avec une plus grande priorité, on met un timestamp plus petit, par ex. :
return -($t - 10)
(exemple mailshot) - Et j’en déduis que pour relancer dans le futur, on incrémente le timestamp :
return -($t + 10)
Est-ce que c’est bien ça ?