Je prévois de créer un utilitaire qui interrogera la base de données et stockera des informations (sur une autre table de la base de données). C'est un utilitaire multi-thread et nécessiter de s'exécuter toutes les 5 ou 10 minutes / plus tard peut être trois fois par jour.
Je vois deux options pour y parvenir dans la programmation C # / DotNet.
- créer un service Windows avec une approche minuterie à l'intérieur.
- un programme de console et le planifier à l'aide du planificateur de tâches Windows.
Lequel préférez-vous et pourquoi?
Réponses:
Commentaires d'un de mes collègues d'hier sur ce même sujet
L'article de Jon Galloway de 2005 "// TODONT: Utilisez un service Windows juste pour exécuter un processus planifié" est une bonne lecture. Je suggère que les commentaires soient également lus, car la discussion se poursuit jusqu'à aujourd'hui et fournit également de bons contre-arguments.
Personnellement, je suis d'accord avec mon collègue à ce sujet. Restez simple aussi longtemps que possible. Et si vous déployez sur le serveur Win2008, consultez le Planificateur de tâches et toutes les fonctionnalités offertes par le planificateur standard. Pour moi, le tueur devait démarrer une tâche planifiée lorsqu'un événement se produit.
la source
Les services sont utilisés à des fins administratives ou pour offrir un service à plusieurs applications.
Les planifications sont utilisées pour exécuter une tâche plusieurs fois qui ne nécessitent pas nécessairement des autorisations supplémentaires.
la source
J'ai entendu les arguments en faveur de l'utilisation de Windows Scheduler, mais j'ai toujours opté pour l'écriture de mon application en tant que service. Au début, je pensais que ce serait une meilleure solution dans un environnement en cluster, mais ce n'est pas vraiment vrai. L'essentiel est que je n'avais pas de bonne raison autre que celle-ci "se sentait" comme un meilleur design.
la source
pourquoi n'essayez-vous pas Quartz.net
je l'ai utilisé une fois et je peux dire que c'est un cadre puissant pour créer votre propre planificateur, et il fournit un service pré-construit qui exécutera vos tâches planifiées (stockées dans la base de données ou simplement dans un fichier XML ) http://quartznet.sourceforge.net/
la source
Si vous souhaitez que l'utilisateur ait plus de contrôle sans que vous ayez à le créer, utilisez le Planificateur de tâches. On dirait que Google fait cela avec la mise à jour de leurs applications. Selon l'utilisateur, il n'est pas difficile de gérer la tâche. Sortez l'utilisateur de la boucle et créez un service. La plupart des gens ne les toucheront jamais.
la source