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

Services Windows Discussion :

Service windows, C# et tâche planifiée


Sujet :

Services Windows

  1. #1
    Membre régulier
    Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Yonne (Bourgogne)

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

    Informations forums :
    Inscription : Novembre 2007
    Messages : 99
    Points : 115
    Points
    115
    Par défaut Service windows, C# et tâche planifiée
    Bonjour,

    Ma question ne me semble pas très originale et pourtant je ne trouves pas de réponses à mes questions. Ni ici, ni sur Google.

    Je dois exécuter une tâche, tous les jours, à 4h00 du matin. Cette tâche doit télécharger des fichiers et faire des mises à jours dans une base de données.
    La tâche est un traitement C# maison. Son développement est terminé. Maintenant je dois planifier son lancement.

    Instinctivement, je me suis dit : "je vais créer un service windows, puis planifier son lancement tous les jours à 4h00 du matin."
    Visiblement, il y a un biais intellectuel à associer "tâche planifiée et service windows".

    Soit il est lancé automatiquement au démarrage de la machine (qui est un Windows serveur 2008 R2) soit il ne l'est pas. Il ne me semble pas possible de le lancer à la demande, à une heure donnée.

    J'ai d'autres traitement du même type à planifier, le 1 de chaque mois à 2h00, tous les jours ouvrés à 2h00, tous les samedis à 1h00 etc, tous les jours toutes les heures, ...

    Je pourrais jouer avec un timer qui regarde toutes les heures si l'heure est supérieure à 3:59:59 et inférieure à 4:59:59 mais c'est pas terrible...
    Si la machine se relance à 4h30, j'aurais un cas à gérer etc.

    Bref, j'ai passé beaucoup de temps à écrire du code fonctionnellement pertinent (ma fonctionnalité), mais j'ai pas très envie de réinventer la roue à créer un système de planification de tâche sous windows.

    Pouvez-vous m'orienter sur la technologie la plus pertinente ? Sachant que je suis moins mauvais en C# qu'en administration système.

    Mon besoin :
    - Lancer une tâche C# (exe ou dll) automatiquement à une fréquence (heure, jour, mois, ...) déterminée
    - Assurer que la tâche n'est lancée qu'une seule fois (le traitement dure 20 minutes, sachant que je peux trouver une solution à ce besoin en C# pur)
    - En cas de crash du système (reboot du serveur), si la tâche n'est pas terminée, la relancer (Là aussi, en C#, je peux trouver une solution)
    - Ne pas nécessiter qu'une session soit ouverte (d'où mon envie de service)

    Désolé si la question est triviale et/ou déjà abordée 20 fois, j'ai pas dû utiliser les bon mots clefs.

    En vous souhaitant une bonne année : ))

    Merci !

    [Edit]
    - En lançant Quartz.NET (http://quartznet.sourceforge.net/features.html) dans un service, ça doit répondre à mes besoins.
    Ça me paraît quand même bien "compliqué" pour faire ça

    - Schtasks.exe (http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx)
    Euh, c'est une simple tâche planifiée mon besoin ? Ca a pas besoin d'une session active cette chose là ? J'ai l'impression de chauffer là.
    Je ferais des tests demain. Enfin... Dans 5h00...

    [Edit2]
    - Bon, bah c'est une tâche planifiée "basique" mon truc. Avec accès aux ressources réseaux : (http://technet.microsoft.com/fr-fr/l...(v=ws.10).aspx)

    Quand l’option Exécuter même si aucun utilisateur n’a ouvert de session est sélectionnée, vous serez peut-être invité à fournir les informations d’identité du compte en enregistrant la tâche
    C'est les tâches planifiée n'ont pas besoin de session utilisateur, c'est comme un service planifié visiblement.

    Bouh, j'ai pas été bon sur ce coup ! Je laisse le topic pour ceux qui passerons après moi.
    Si cela peut épargner quelques recherches à quelqu'un... Qu'il fasse un don de ma part à S.O.S Informaticien en détresse.

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    En fait tu as confondu tache planifiée et service windows. Ce sont 2 choses bien distinctes, totalement indépendantes, et quelque part un peu incompatible d'ailleurs.

    Un service windows est un bout de code, très spécifique, qui, une fois qu'il est lancé au démarrage (ou manuellement), tourne en permanence en tache de fond.

    La tache planifiée sert, elle par contre, à lancer n'importe quel logiciel (ça pourrait très bien être Word ou un jeux) selon un séquencement bien définie.

    Dans ton cas c'est bien une tache planifiée qu'il te faut.
    Pour répondre à ton cas, tu lui met plusieurs déclencheurs, un à 4h du mat évidemment, mais aussi 1 au démarrage de la machine (restera à gérer dans ton code les 2 cas de lancements).

    Par contre, la tache planifiée a besoin d'une session pour fonctionner. Si tu veux qu'elle tourne même quand il n'y a pas de session ouverte, il faut lui paramétrer la session à utiliser pour qu'elle l'ouvre automatiquement (en tache de fond normalement) pour son exécution.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  3. #3
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par Laur3nT Voir le message
    Il ne me semble pas possible de le lancer à la demande, à une heure donnée.
    Le service de scheduling de windows (qui n'existe il est vrai que depuis 20 ans) fait ça très bien.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  4. #4
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Le service de scheduling de windows (qui n'existe il est vrai que depuis 20 ans) fait ça très bien.
    Oui c'est ce qui est dit, les taches planifiées (service schedulling mais en français ) sont là pour ça !!!!
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  5. #5
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par sevyc64 Voir le message
    Oui c'est ce qui est dit, les taches planifiées (service schedulling mais en français ) sont là pour ça !!!!
    En effet ... désolé, je n'avais pas tout lu

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

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

Discussions similaires

  1. Installation d'un service Windows dans une tâche de démarrage
    Par ybrunet dans le forum Microsoft Azure
    Réponses: 1
    Dernier message: 03/01/2012, 15h15
  2. Service windows exécutant une tâche périodique
    Par Nico_stras dans le forum C#
    Réponses: 13
    Dernier message: 06/03/2008, 08h46
  3. Service windows VS Tâche planifiée + VBS
    Par lapanne dans le forum Windows Serveur
    Réponses: 3
    Dernier message: 09/11/2007, 18h46
  4. [VS2005] Services Windows - tâches planifiées
    Par mainecoon dans le forum VB.NET
    Réponses: 1
    Dernier message: 02/08/2007, 11h33
  5. [C#] Icône, barre des tâches et Service Windows
    Par SErhio dans le forum Windows Forms
    Réponses: 17
    Dernier message: 03/09/2004, 12h56

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