Je développe un plugin et je souhaite ajouter une tâche cron (disons cron_task_test), mais j'ai un doute. Dans le cas où 15 tâches (celles-ci peuvent être programmées par plusieurs plugins ou par l'utilisateur lui-même) sont planifiées pour être exécutées à la fois avec ma tâche (cron_task_test), wp-cron les sélectionnera une par une, c'est-à-dire une autre tâche après la première exécution ou si la première tâche a pris plus d'une minute? Ou est-ce que tous seront renvoyés les uns après les autres
En bref, comment fonctionne cron_lock? Dans le cas où il s’exécute l’un après l’autre, le thread cron principal qui exécute toutes les tâches une par une ne dépasse-t-il pas le délai maximal d’exécution du serveur (généralement 30 secondes)?
Que se passera-t-il si une autre tâche périodique avant ma tâche (cron_task_test) a généré une erreur ou dépassé la limite de temps?
Par exemple, vers midi, il devrait exécuter 3 tâches.
Si vous utilisez wp-cron
, il commencera quand quelqu'un visitera votre page vers 12h00. (Voici une petite complication car lorsque deux utilisateurs visitent votre page exactement au même moment, cron peut commencer deux fois et tout faire deux fois).
Cependant, quelqu'un ouvre notre page vers 12h00 et cron commence. Il tire tous les événements programmés dans la matrice. Définissez transitoire que cron est occupé et démarrez tous les processus dans l'instruction foreach
en utilisant call_user_func_array
(il est presque identique à do_action
mais pour array
).
Procédure dans foreach
:
Mes petits conseils:
Vous avez quelques informations supplémentaires écrites dans l'article de mon ami: Cron solutions for wordpress