Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Membre régulier
    Profil pro Laurent
    Développeur .NET
    Inscrit en
    novembre 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Nom : Laurent
    Âge : 28
    Localisation : France, Yonne (Bourgogne)

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

    Informations forums :
    Inscription : novembre 2007
    Messages : 96
    Points : 74
    Points
    74

    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 Yves
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    6 871
    Détails du profil
    Informations personnelles :
    Nom : Homme Yves
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : janvier 2007
    Messages : 6 871
    Points : 16 352
    Points
    16 352

    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 François
    Chef de projet NTIC
    Inscrit en
    janvier 2007
    Messages
    6 608
    Détails du profil
    Informations personnelles :
    Nom : Homme François
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : janvier 2007
    Messages : 6 608
    Points : 12 114
    Points
    12 114

    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.

  4. #4
    Modérateur
    Avatar de sevyc64
    Homme Profil pro Yves
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    6 871
    Détails du profil
    Informations personnelles :
    Nom : Homme Yves
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : janvier 2007
    Messages : 6 871
    Points : 16 352
    Points
    16 352

    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 François
    Chef de projet NTIC
    Inscrit en
    janvier 2007
    Messages
    6 608
    Détails du profil
    Informations personnelles :
    Nom : Homme François
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : janvier 2007
    Messages : 6 608
    Points : 12 114
    Points
    12 114

    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

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •