IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration système Discussion :

[Debian] temps d'exécution d'un CRON


Sujet :

Administration système

  1. #1
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 53
    Points : 47
    Points
    47
    Par défaut [Debian] temps d'exécution d'un CRON
    Bonjour,
    J'ai un cron qui s'exécute un script PHP toutes les 10 secondes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    */10 * * * * /usr/bin/php /var/www/html/monScript.php
    Le problème est que le temps d'une seule exécution peut dépasser 10 secondes.
    Y aurait-il une manière pour faire en sorte qu'on ne passe à une nouvelle exécution que si l'exécution courante est achevée?
    Merci d'avance pour votre aide

  2. #2
    Membre actif
    Inscrit en
    Juin 2003
    Messages
    270
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 270
    Points : 216
    Points
    216
    Par défaut
    tu peux tester dans un script bash si le processus est toujours en train de tourner; si oui exit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #!/bin/sh
     
    nb=`ps ax | grep '/usr/bin/php /var/www/html/monScript.php' | grep -v grep | wc -l`
     
    if [ "$nb" -gt 0 ]; then 
        exit 1
    fi
     
    /usr/bin/php /var/www/html/monScript.php &
    et dans cron tu appelles ce script bash au lieu du script php. C'est aussi possible de tout faire en php, a toi de voir ce que tu preferes.

  3. #3
    Membre éprouvé
    Avatar de Celelibi
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 087
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 087
    Points : 1 122
    Points
    1 122
    Par défaut
    Citation Envoyé par arkienou Voir le message
    Bonjour,
    J'ai un cron qui s'exécute un script PHP toutes les 10 secondes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    */10 * * * * /usr/bin/php /var/www/html/monScript.php
    Le problème est que le temps d'une seule exécution peut dépasser 10 secondes.
    Y aurait-il une manière pour faire en sorte qu'on ne passe à une nouvelle exécution que si l'exécution courante est achevée?
    Merci d'avance pour votre aide
    C'est moi ou bien ce que tu as écrit exécute ton script toutes les 10 minutes ?

    À mon sens, pour exécuter un script plus fréquemment que toutes les minutes il serait plus logique de créer un script qui tourne en permanence et relance le script toutes les 10 secondes.

    De plus, si tu es prêt à "sauter une occurrence" si le script met trop longtemps à s'exécuter, j'en déduis que tu n'es pas très stricte sur le timing d'exécution, je me trompe ?
    Donc pourquoi ne pas avoir simplement un script shell qui attend 5 secondes avant de relancer le script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while true; do
        /usr/bin/php /var/www/html/monScript.php
        sleep 5
    done
    Les vaches ne peuvent PAS voler, quoi qu'elles aient pu vous raconter.

Discussions similaires

  1. Réponses: 9
    Dernier message: 20/06/2005, 12h17
  2. [C#] Calcul du temps d'exécution.
    Par lozzko dans le forum Windows Forms
    Réponses: 4
    Dernier message: 12/06/2005, 16h12
  3. Réponses: 2
    Dernier message: 25/05/2004, 15h33
  4. Affichage du temps d'exécution d'une requête
    Par milka dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 22/03/2004, 17h48
  5. Temps d'exécution des instructions FPU
    Par ubi dans le forum Assembleur
    Réponses: 2
    Dernier message: 24/10/2003, 18h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo