Comment le planificateur de tâches de Windows est fiable pour le code à exécuter de façon répétitive la programmation?

StackOverflow https://stackoverflow.com/questions/722678

Question

J'ai un peu de code qui doit s'asseoir sur un serveur machine Windows 2003 et exécutez chaque minute.

Quelle est la méthode recommandée de gérer cela? Est-il autorisé à concevoir comme un service de la console et juste avoir le planificateur de tâches frapper jamais minute? (Est-ce possible?) Dois-je sucer juste et écrire comme un service Windows?

Était-ce utile?

La solution

Comme il a besoin de courir chaque minute, je vous suggère d'écrire un service Windows. Il est pas très compliqué, et si vous ne l'avez fait auparavant, ce serait formidable pour vous d'apprendre comment il est fait.

L'appel de la tâche planifiée chaque minute est pas quelque chose que je recommande.

Autres conseils

Je dirais le sucer et écrire comme un service Windows. Je n'ai pas trouvé les tâches planifiées d'être très fiable et quand il ne fonctionne pas, je dois encore trouver un moyen facile de savoir pourquoi il n'a pas.

tâches planifiées de Windows a été assez fiable pour nos besoins et nous leur faveur dans presque tous les cas sur les services Windows en raison de leur facilité d'installation et de fonctions avancées. Le toujours sur la nature d'un service de fenêtres pourrait finir par être un problème si une partie du code qui a été se termine écrit ups faire enfermer ou bouclées dans un morceau de code qui ne devrait pas être. Nous écrivons généralement notre code dans un de façon similaire à ce

Init();
Run();
CleanUp();

Ensuite, dans le cadre de la tâche planifiée, nous mettons un temps limite à la durée du processus peut fonctionner et l'avoir tuer le processus si elle dure plus longtemps. Si nous avons un morceau de code qui a de la difficulté des tâches planifiées tueront et le processus va commencer dans la minute suivante.

si vous avez besoin de le faire tourner chaque minute, je le construire en tant que service Windows. Je ne voudrais pas utiliser le planificateur pour rien de moins qu'une tâche quotidienne.

Je dirais que cela dépend de ce qu'il faisait, mais en général, je suis toujours en faveur d'avoir le plus petit nombre de couches. Si vous écrivez en tant que service de la console et utilisez le planificateur de tâches, alors vous avez deux endroits pour maintenir l'avenir.

Si vous écrivez en tant que service de Windows vous suffit d'un peu d'endroits pour vérifier si quelque chose va mal.

Alors que la recherche de l'aide de service régulier, je suis tombé sur un très bon article de Jon Galloway .

Il existe différents diadvantages si un service Windows est utilisé pour tâche planifiée. Je suis d'accord avec elle. Je suggère d'utiliser tâche planifiée, simple mise en œuvre. S'il vous plaît se référer à informations détaillées de mise en œuvre du planificateur de tâches . Espère que cette information aide à finaliser l'approche de mise en œuvre.

Le seul autre point à considérer est que si vous êtes travail implique une sorte d'interaction de base de données, envisager la recherche dans les services d'intégration / planification fournis par votre base de données.

Par exemple, la création d'un package SSIS pour votre service lié SQL Server peut sembler un peu exagéré, mais il peut être intégré bien avec l'environnement et aura ses propres mécanismes de vérification journalisation / erreur déjà en place.

Je suis d'accord, il est en quelque sorte un gaspillage d'efforts pour créer même un exécutable de la console et de planifier à être exécuté à chaque minute. Je suggère d'explorer quelque chose comme Quartz.Net . De cette façon, vous pouvez créer un travail simple et planifier son exécution à chaque minute.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top