Aller au contenu

Comment éviter les retry à un cron ?


toma

Sujets conseillés

Bonjour,

J'ai des cron paramétrés pour s'exécuter tous les jours à heure fixe. Il s'agît à chaque fois d'un wget sur un script PHP :

wget http://www.exemple.tld/includes/cron/rapports.php

Le hic c'est que parfois le script met 3 ou 4 heures à s'exécuter car ça mouline sévère (je ne peux pas changer cet aspect des choses). Donc le cron job 'retry' tous les quarts d'heure pensant que l'appel de la page n'a pas marché. Je voudrais donc spécifier à l'appel des crons de soit ne pas attendre de réponse, soit je ne sais pas...

Parce que du coup là j'ai des script qui sont exécutés 8 voire 9 fois (pour celui qui met 4 h à retourner qque chose) et donc on a des emails multiples qui sont envoyés... arghhh !

J'ai lu rapidement le man de wget, est-ce que ça pourrait résoudre le problème ?

wget --tries=1 --wait=120m http://www.exemple.tld/cron/script.php?action=go

Sinon, quelle serait la solution la plus secure et la plus couramment admise ?

Merci d'avance parce que là je suis un peu dans le flou.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

et bien je ne comprend pas : j'ai moi même des cron de ce type qui mettent plusieurs heures sans faire de "retry".

Par contre, j'appelle un fichier de commande qui contient le ou les wget, je ne fais pas le wget directement, peut-être est-ce la différence avec toi ?

Attention : le site xxx.com existe ;)

Modifié par cyberlaura
Lien vers le commentaire
Partager sur d’autres sites

Attention : le site xxx.com existe ;)
J'ai modifié le post de toma en remplaçant par "exemple.tld" ;)

Dans l'absolu, merci d'éviter de mettre en guise d'exemple des URLs du genre "monsite.com" ou "xxx.com" car ces domaines répondent et en profitent pour se faire du trafic.

Lien vers le commentaire
Partager sur d’autres sites

Sinon, quelle serait la solution la plus secure et la plus couramment admise ?

Bonjour. Ne pas passer par wget, et encore moins par Apache pour exécuter un cron.

Un "vrai" script, lancé en ligne de commande, sans timeout, ça évite beaucoup de problèmes de ce genre.

Mais... encore faut il que l'hébergement le permette...

Lien vers le commentaire
Partager sur d’autres sites

C'est clair que php5 monscript.php c'est quand même probablement plus efficace que wget... Attention cependant aux différents de réglages (php.ini différent, environnement, utilisateur, droits...).

Sinon pour revenir à la question initiale, cron ne refait pas d'essais tout seul. Donc ça veut probablement dire que tu as configuré ton cron pour faire plusieurs essais jusqu'à ce que ça marche, auquel cas il faut soit que tu arrêtes de le faire, soit que tu changes ta logique (ne pas refaire une tentative si le cron a réussi OU si la même requête est déjà en cours).

Jacques.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...