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

C++ Discussion :

exécution toutes les 15 minutes


Sujet :

C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 122
    Points : 73
    Points
    73
    Par défaut exécution toutes les 15 minutes
    je voudrais qu'un programme s'exécute toutes les 15 minutes, comment dois je m'y prendre ?

    - mettre mon programme dans le Task Scheduler de windows ?
    - faire une boucle contenant une fonction sleep(15) ?
    - faire un thread ?

    qu'en pensez vous ?

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    1

  3. #3
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 281
    Points : 11 029
    Points
    11 029
    Par défaut
    Pareil et mauvais forum.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 122
    Points : 73
    Points
    73
    Par défaut
    pour qu'un programme exécute une fonction toutes les 15 minutes, j'ai envisagé plusieurs solutions :

    - exécuter le programme (contenant la fonction) toutes les 15 minutes via le Task Scheduler de winXP (ou autre service du style)
    - faire une boucle dans le programme qui exécute la fonction toutes les 15 minutes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while (true) {
       sleep(15); // fait une pause de 15 minutes
       ma_fonction_a_executer_toutes_les_15_minutes();
    }
    - pour éviter que cette boucle ne "givre" le programme, mettre cette boucle dans un thread


    mes connaisances en c++ n'étant pas très appronfondies, je me disais qu'il y avait bien quelqu'un sur ce forum qui pourrait m'en proposer une meilleure

    merci de bien vouloir répondre de manière constructive, tout le monde a bien du commancé un jour

  5. #5
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Salut !

    Développé ainsi, c'est mieux il y a plus info, question trop concise = réponse de même

    Si la boucle est la SEULE fonctionnalité de ton application, tes solutions 2 et 3 ont le même effet, car quand on crée une application Windows, un Thread principal est automatiquement créé.

    Ensuite tes demandes sont différentes dans le premier cas, tu veux exécuter une application tous les 1/4d'h dans la seconde, tu veux que l'application exécute une fonction toutes les 15minutes... Ce n'est pas strictement équivalent

    Dans le premier cas, c'est la solution 1 qui correspond à ta demande, dans le second cas, c'est la 2 ou 3...

    Ensuite, il faut se poser plusieurs questions :

    1°) Cette fonction est-elle la seule fonctionnalité de ton application ?

    Si oui, tu peux éliminer la solution 3 car elle est équivalente à la solution 2, en étant en même temps plus gourmande en mémoire et en CPU (un thread supplémentaire, donc plus de mémoire pour le stocker, et plus de temps CPU, car il faut tester un thread supplémentaire à chaque boucle du multithreading de Windows), même s'il est vrai que ces différences sont négligeables

    Si non, c'est la solution 3 qui est à retenir, ainsi, ta fonction sera lancé ssi elle est nécessaire : si l'application est arrétée, alors la fonction ne sera pas lancé, elle n'est pas nécessaire, car ça demanderais de lancer toute l'application pour une simple fonction...

    Si l'application est lancé, tu es sûr que la fonction sera exécutée sans freezer ton application

    2°) Quel rapport préfères-tu :

    Dans le cas 1, ton application sera lancée même si sa dernière exécution s'est mal placée... Mais si le task Schudler est désactivé, ou rencontre un problème, alors l'application ne sera plus lancée

    Dans le cas 2, si jamais ton application rencontre une exception non gérée, alors l'application avortera, et la fonction ne sera plus lancée. D'un autre côté, ton application est indépendante de toute interaction extérieure...

    À toi de voir

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 122
    Points : 73
    Points
    73
    Par défaut
    un tout grand merci pour ces éclaircissements
    au vu de mes besoins je vais opter pour la solution numéro 2

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Exécuter une fonction toutes les 2 minutes en VB.NET
    Par sihammaster dans le forum VB.NET
    Réponses: 3
    Dernier message: 14/10/2012, 00h29
  2. Exécution d'un bat toutes les 5 minutes
    Par pjmorce dans le forum Windows 7
    Réponses: 4
    Dernier message: 14/02/2011, 14h42
  3. Exécuter une fonction toutes les X minutes ?
    Par corgato dans le forum Qt
    Réponses: 8
    Dernier message: 27/01/2009, 10h29
  4. Exécuter un service toutes les X minutes
    Par max-mag dans le forum Administration
    Réponses: 2
    Dernier message: 29/12/2008, 09h29
  5. Planification de tache toutes les 30 minutes
    Par gigiland dans le forum Windows
    Réponses: 4
    Dernier message: 21/09/2005, 14h36

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