Aller au contenu

nouvel essai dans 10 minutes


Sujets conseillés

Posté

Bonjour,

J'ai des tâches PHP (et Perl) qui sont lancées par cron. Il arrive que certaines tâches ne s'exécutent pas correctement parce que l'information nécessaire n'est pas encore disponible. Dans ces cas-là, je sais que l'information sera probablement disponible 10 ou 20 minutes plus tard. Comment faire une relance automatique si possible à l'intérieur du script PHP ?

Je cherche une méthode la plus "propre" possible. ;)

Jean-Luc

Posté

Bonjour,

Personnellement j'appellerai plusieurs fois le script via CRON à 30 minutes d'intervalle.

Et dans le script un test supplémentaire au début à ajouter si la dernière exécution est récente (pas d'opération à faire) ou non (poursuivre le script).

Posté

Même genre: remettre effectivement la même opération en cron un peu plus tard (je ne sais pas quelle est la périodicité "originale", j'ai tendance à penser que c'est quotidien plutôt que toutes les heures?), et faire un test pour voir si la tâche a déjà été exécutée correctement. S'il n'y a pas de test évident, il suffit de créer une table SQL avec une seule ligne qui contient la dernière exécution réussie, ou même un fichier quelque part qui contient cette info.

Jacques.

Posté

Merci pour les suggestions. Cela m'a permis de restructurer les choses.

Voilà ce que je fais maintenant:

1. cron exécuté toutes les 15 minutes pendant toute la période de capture des infos

2. il lance un premier script qui vérifie d'abord s'il doit s'exécuter ou pas et qui se termine par un exit avec un code d'erreur si les infos ne sont pas disponibles

3. dans le shell script, après l'appel du premier script, j'ajoute

if [ $? -ne 0 ]; then
echo "Info non valide."
exit 127
fi

Comme ça, le cron s'arrête si l'info n'est pas prête.

Jean-Luc

Veuillez vous connecter pour commenter

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



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