2010-06-15 4 views
1

Nous devons développer un composant de notification. Qu'est-ce qu'il va faire, c'est de scanner une base de données à intervalles donnés (disons, toutes les 15 minutes), pour voir si des notifications doivent être envoyées.Quelle "plateforme" devrions-nous utiliser pour un composant de notification?

Nous fonctionnons sous Windows et nous avons donc examiné un service Windows ou le planificateur de tâches Windows.

Notre plus grande préoccupation est la robustesse de notre implémentation. Si, pour une raison quelconque, il se bloque, peut-il être redémarré automatiquement l'intervalle suivant? Pouvons-nous utiliser une logique de journalisation personnalisée pour gérer les plantages?

Je voudrais une supposition sur ce qu'il faut utiliser ici :) Ne hésitez pas à dire si vous avez besoin d'informations supplémentaires, de faire une telle supposition ..

Props sera donnée si quelqu'un pourrait faire une courte liste des avantages et inconvénients d'un service Windows par rapport au planificateur de tâches Windows. En outre, il convient de noter que nous ne sommes pas placés sur l'un ou l'autre de ces derniers, donc si vous avez des alternatives, s'il vous plaît, postez loin.

Merci d'avance :)

+1

Voir la question précédente: http://stackoverflow.com/questions/390307/windows-service-vs-scheduled-task –

Répondre

2

Si votre application n'a pas besoin de fonctionner en continu, il y a des avantages à utiliser le planificateur de tâches. Il est un peu plus facile à configurer et vous pouvez configurer votre application pour qu'elle s'exécute toutes les 15 minutes, exécute sa requête, envoie ses notifications, planifie sa prochaine exécution et se ferme. Cependant, compte tenu de l'intervalle de 15 minutes, il vaudrait peut-être mieux mettre en œuvre ce service en tant que service Windows, car les frais généraux engendrés par la multiplication et la fin du processus peuvent annuler les avantages de ne pas le faire continuellement.

Windows Services

Avantages

  • peut être configuré pour redémarrer automatiquement (voir les propriétés d'un service dans l'application du panneau de commande du Gestionnaire de service)
  • peut être configuré pour fonctionner en contexte d'un autre compte d'utilisateur
  • Peut être démarré à distance, arrêté
  • Suite t o fonctionner même si personne n'est connecté

Inconvénients

  • élévation des besoins pour l'installation
  • fonctionne en continu qui peut ou non être avantageux

Planificateur de tâches

Avantages

  • peut être configuré pour fonctionner sur un calendrier de votre choix, y compris les horaires complexes
  • peut être configuré pour fonctionner dans le contexte d'un compte d'utilisateur différent

Inconvénients

  • Si une invocation échoue, vous devrez attendre jusqu'à l'invocation suivante ou implémenter une logique pour ajuster la planification de manière appropriée
Questions connexes