bonjour,
Voilà j’ai une tache cron prévue d’être lancée tous les 120s .
depuis le gestionnaire de travaux, celle ci est bien définie.
le bouton « Exécuter maintenant » permet de la lancer à chaque demande manuelle ( en respectant un délai minima de l’ordre du cycle prévu)
par contre le lancement automatique ne se fait pas. Il est indiqué, dans le gestionnaire de travaux, le délai de la prochaine ou dernière exécution de la tache, comme par exemple ci-après
il y a 22 minutes
Tâche CRON invalideur (toutes les 600 s) | invalideur(1644929852)
il y a 22 minutes Tâche CRON owncloud (toutes les 120 s) | owncloud(1644930349)
…autres taches à venir
Comme si la tache était bloquée
Las de chercher à comprendre, je m’aperçois ce matin que celle-ci s’est relancée dans la nuit et a continué à fonctionner jusqu’à je réinspecte des logs, que je vérifie les données attendue, et autres activités…
Depuis elle s’est rebloquée
Y a-t-il une explication rationnelle à ce non-fonctionnement ?
Les tâches cron gérées par SPIP ne se déclenchent que s’il y a des visites sur ton site. Et en conséquence 1) il ne se passe rien s’il n’y a pas assez de visite 2) le moment du déclenchement n’est pas précis du tout.
Donc 120secondes ça n’a pas beaucoup de sens pour un cron spip. Il serait préférable d’utiliser un cron serveur.
120s c’est la config initiale du plugins ( 90s pour etre précis).
Vu l’objectif du plugins je vais proposer une valeur qui sera plutot de l’ordre de l’heure ou supérieure.
ne se déclenchent que s’il y a des visites sur ton site
Ce qui me surprend c’est plutot l’inverse qui se produit… En effet je suis entrain de tester, modifier, adapter, etc… et c’est alors qu’appairaissent les non-executions de cron,
et quand je clos mon travail (deconnexion du web) alors au bout d’un moment les taches cron reprennent …
à ce moment il n’y a sans doute aucun accès de visiteur (je n’ai pas vérifié mais c’est un site en test…)
Configurer un cron serveur est dans mes capacités, mais comment y appeler les taches de spip ? y aurait-il quelques exemples ?
Jluc petites précisions s’il te plait
un cron définit une tache toutes les 4 heures
pas de visite du site => pas de cron => pas de tache - OK !
une seule visite dans l’interval des 4 heures -
?? question la tache s’effectuera
a) à la fin de son interval de 4 heures ?
b) dès que possible puisqu’elle n’a pas été effectuée depuis plus de 4 heures ?
Les tâches ne se déclenchent pas « pendant un intervalle » mais lorsque leur échéance est arrivée.
Genre : à chaque visite les tâches sont examinée et s’il y en a une à échéance, elle est exécutée.
S’il y en a plusieurs… je sais plus trop, peut être plusieurs tâches sont exécutées mais il ya une limite, et les autres doivent attendre la visite suivante.
Pour déclencher une tâche par un cron serveur, il faut appeler une action SPIP. Souvent les tâches du genie sont couplées avec des actions.
Salut,
J’ai aussi un fonctionnement bizarre du CRON de Spip : Il y a des tâches « immédiates » (sans délais) qui ne sont pas exécutées alors que je parcoure les pages du site. Puis je ne sais pas pour quoi d’un coup les tâches sont exécutées (après plus d’une heure des fois) .
Sur la page de gestion de tâches de fond j’ai bien « Prochaine tâche dans » avec une valeur négative (tâches en attente), mais le « surf » sur le site ne déclenche pas le CRON de Spip
J’ai désactivé le cache de mon navigateur : rien de mieux
Seul l’utilisation du bouton « Recalculer cette page » lance à coup sûr l’exécution des tâches. (de même qu’un spip.php?action=cron)
Pour info le site est chez OVH ou je peux faire un CRON unix mais uniquement 1 fois pas heure (et en plus avec un script sans paramètres …)
Si quelqu’un a une idée !!!
Un délai d’échéance négatif indique que la tâche est arrivée à échéance.
Quelques pistes :
le plugin accelerer_job, né d’un besoin similaire au tien mais dans un contexte où on peut mettre un bouton pour faciliter le déclenchement des jobs : Accélérer Jobs - SPIP-Contrib
Il propose aussi une action que éventuellement tu pourrais appeler en php dans le footer.
il existe aussi des plateformes qui proposent d’appeler un cronjob sur ton site à la fréquence de ton choix. Je me souviens avoir dans le passé fait appel à l’une d’elle, gratuite, mais je ne me souviens plus du site.
Merci, je vais exploré le plugin accelerer_job, en revanche je ne suis pas fan de l’utilisation de services extérieurs, tu deviens dépendant, et tu ne maitrise plus la chose (quid de la pérennité, etc).
Sinon j’avais bien intégré qu’une valeur négative de délai était synonyme du traitement de la tâche au prochain traitement.