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

VB.NET Discussion :

Executer une action à un moment très précis.


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 56
    Par défaut Executer une action à un moment très précis.
    Bonjour à tous,
    Je réalise un programme de calcul pour des analyses de gaz (Vb.Net et Framework 4.0). Pour l'instant, pas de problème, je récupére mes valeurs dans une BD SQLServer et je lance des calculs. Par contre les calculs doivent se lancer à un moment précis : toutes les 10 minutes sans décalage.
    Je me demandais s'il n'existait pas un évènement dans VB.net et/ou Windows qui me permettrais de déclencher mes procédures à un moment précis : par exemple à 14:00:00 puis 14:10:00 puis 14:20:00 et ainsi de suite toutes les 10 minutes précises.
    Je sais qu'il existe le Timer mais je crains une dérive ou une non-synchronisation avec l'horloge du PC, l'application tournant 24/24 et 7j/7. De plus avec le Timer je vais être obligé de tester en permanence, presque chaque seconde, si l'heure de lancement est la bonne ce qui consommera certainement des ressources pour rien.
    Si vous avez une idée !!!
    Merci et bonne fin d'année.

    @+
    Thierry

  2. #2
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Bonjour,

    tu pourrais faire un timer avec un temps très inférieur, genre 10 secondes, et dans ce l'évènement du timer tu regardes que les minutes sont égales à 0, 10, 20, 30, 40, 50 du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if now.minute mod 10 = 0 then ' Déclenchement du calcul
    Et tu déclenche le calcul dans ce cas, de préférence dans un thread séparer.

    Tu pourras dans ce cas, avoir au maximum 10 seconde de battement mais rien ne t'empêche de mettre moins...

    Aussi non, autre moyen faire une tache planifiée qui s'execute toutes les heures à 10, 20, 30, 40, 50 et 0...

  3. #3
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615

  4. #4
    Invité
    Invité(e)
    Par défaut
    Peut être que je dis des bêtises. Mais ne penses-tu pouvoir créer un travail automatique dans SQL Server et ainsi le processus SQL Server Agent se chargera d'exécuter ces calculs qu'il stockera dans une table prévue à cet effet.

    Côté client, ton application VB.Net interrogera juste la table précédente pour récupérera les données déjà calculé par interval de temps défini dans ton Timer.

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    pour avoir un timing précis déjà il faut windows server
    après il y a plusieurs méthodes, par exemple un threading.timer, ou encore un thread qui sleep le temps restant à attendre après le traitement (diagnostics.stopwatch permettant de connaitre le temps d'exécution entre 2 bornes)
    dans les 2 cas une dérive d'une milliseconde reste surement possible mais sans s'empiler je pense
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 56
    Par défaut
    Merci pour vos réponses. Je pense que je vais partir avec la solution de Pol63. Elle me semble la mieux adaptée à mon problème.
    Merci encore et bonne année.

    @+
    Thierry

  7. #7
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Je pense que tu devrais jeter un oeil a Quartz.Net.
    C'est une librairie pas mal utilisée en Java et .Net.
    C'est vraiment top pour la planification de taches et c'est carrément moins bricolage qu'un timer...

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

Discussions similaires

  1. Lancer une action à un moment précis.
    Par thibab dans le forum VB.NET
    Réponses: 11
    Dernier message: 19/11/2010, 10h47
  2. executer une action sur submit
    Par pascale86 dans le forum Langage
    Réponses: 2
    Dernier message: 27/11/2006, 16h16
  3. Executer une action à partir d'un lien JSP
    Par orus2 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 22/04/2006, 14h05
  4. Faire a un script executer une action sur un signal
    Par vodevil dans le forum Langage
    Réponses: 1
    Dernier message: 13/12/2005, 11h14
  5. [Struts]Executer une action sans ActionForm associé ?
    Par brousaille dans le forum Struts 1
    Réponses: 7
    Dernier message: 19/09/2005, 17h24

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