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

Python Discussion :

une" boucle" à heure fixe (h, h+15, h+30, h+45 etc ? ou 15 doit etre remplacer par 90 par ex


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 3
    Par défaut une" boucle" à heure fixe (h, h+15, h+30, h+45 etc ? ou 15 doit etre remplacer par 90 par ex
    Bonjour a tous

    Voici mon problème, j’ai fait un programme qui doit se répéter toutes les x minutes ex : H, H+15, H+30, H+45, …etc. ? ou H, H+90, H+180, H+270 etc...

    le probleme c'est que j'ai repris le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> import time
    >>> min = time.localtime()[4]
    >>> min
    13
    >>> dif = 15 - min % 15
    >>> dif
    2
    celui fonctionne mais seulement pour un x inferieur a 60 minutes si mon x est de 1h30 cela prend en compte la prochaine demie heure et pas la prochaine heure et demie avez vous une petite soluce ?

    d' avance merci


    Cyril.

  2. #2
    Membre expérimenté Avatar de cervo
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2012
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 220
    Par défaut

    Le module python-crontab pourrait faire ton bonheur !
    Ooooops je suis hors-sujet !

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 762
    Par défaut
    Salut,

    Si vous partez sur un time décrit par un struct_time, le temps sera représenté par un tuple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> import time
    >>> time.localtime()
    time.struct_time(tm_year=2016, tm_mon=2, tm_mday=4, tm_hour=8, tm_min=17, tm_sec
    =49, tm_wday=3, tm_yday=35, tm_isdst=0)
    Dit autrement, s'il est 1h45 et qu'on vous donne rendez vous dans 1h30 (ou 90 mns), vous allez ajouter 30 a 45, trouver que 75 est supérieur à 60 et donc propager la retenue sur les heures pour trouver 3h15. La programmation n'est pas de la magie: si vous propagez la retenue dans la vraie vie, il faudra le traduire dans votre code.
    Une autre solution est d'utiliser une bibliothèque comme datetime qui permet de travailler avec ces représentations:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    >>> import datetime as dt
    >>> d = dt.datetime.now()
    >>> delta = dt.timedelta(hours=1, minutes=30)
    >>> d + delta
    datetime.datetime(2016, 2, 4, 13, 44, 47, 958835)
    >>>
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 3
    Par défaut
    Salut merci pour le tips je vois bien le principe, mais admettons que je veuille repeter cette tache toutes les 10 mins a heures fixe, par exemple 10h10, 10h20, 10h30, 10h40, mais que mon scrpit ce lance a 10h05, si je lance mon script a 10h05 ma prochaine execution se fera a 10h15 et pas a 10h10, en fait je peux avoir des redemarrages intempesives de server.

    grosso modo je dois regarder lheure pleine puis les minutes ex 1h43 et je saurai que ma prochaine execution se fera a 1h50 si je dois avoir une repeat toutes les 10 mins.

    et la je bloque.... comment dire je debute...

    merci bcp

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 762
    Par défaut
    Citation Envoyé par cyril.fautrai Voir le message
    grosso modo je dois regarder lheure pleine puis les minutes ex 1h43 et je saurai que ma prochaine execution se fera a 1h50 si je dois avoir une repeat toutes les 10 mins.

    et la je bloque.... comment dire je debute...
    Des solutions ont été donnés dans cette discussion récente. Essayez de comprendre comment elles fonctionnent pour les adapter à votre cas.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. [Python 2.X] une" boucle" à heure fixe (h, h+15, h+30, h+45 etc ?
    Par LHT50 dans le forum Général Python
    Réponses: 13
    Dernier message: 29/10/2015, 13h53

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