2009-09-22 7 views
10

Mon équipe discute mieux: un service Windows ou des tâches planifiées. Nous avons un serveur dédié à l'exécution des tâches et actuellement ce sont toutes des tâches planifiées. Certains travaux prennent des fichiers, les renomment et les placent dans d'autres répertoires du réseau. D'autres travaux extraient des données de SQL, les modifient et les envoient ailleurs. D'autres fichiers ftp d'emplois sortent. Il y a beaucoup de variété, mais dans l'ensemble, ils sont assez simples. Je suis parti pour que chacun d'entre eux s'exécute en tant que service Windows au lieu d'une tâche planifiée car il est beaucoup plus facile de surveiller un service Windows qu'une tâche planifiée. Certains sont diamétralement opposés. En fin de compte, aucun d'entre nous n'a autant d'expérience pour fournir des comparaisons factuelles réelles entre les deux méthodes. Je suis à la recherche de commentaires sur ce que d'autres ont vécu.tâche planifiée ou service Windows

Répondre

6

S'il fonctionne en permanence - Service Windows.

S'il doit être exécuté à divers intervalles - tâche planifiée.

4

Les travaux d'ordonnancement avec la fonctionnalité intégrée sont une utilisation parfaitement valide. Vous auriez à recréer toutes les fonctionnalités afin de créer un bon service, et à moins que vous ne vouliez réagir à des événements spécifiques, je ne vois aucune raison de déplacer un travail nocturne dans un service. Il est différent quand vous voulez traiter un fichier après qu'il a été posté dans un dossier, c'est quelque chose que je voudrais créer un service, c'est en utilisant l'observateur du système de fichiers pour surveiller un dossier.

Je pense que réinventer la roue

2

Bien qu'il n'y ait rien de mal à utiliser le planificateur de tâches, il est lui-même, un service. Mais nous avons les mêmes exigences que celles où je travaille et nous avons un programme général qui fait plusieurs de ces tâches. J'ai interprété votre message pour dire que vous exécuteriez des services individuels pour chaque tâche, je considérerais écrire un seul programme piloté par base de données (service) pour faire toutes vos tâches, et ainsi, quand vous en ajoutez un nouveau, c'est simplement un corvée d'entrée de données, et pas un tout nouveau programme à écrire. Si vous pratiquez le contrôle des changements, cette différence peut être significative. Si vous avez plus de quelques tâches, l'effort peut être compilable. Cette approche vous permettra également d'élaborer un mécanisme de journalisation adapté à vos opérations.

C'est une partie de notre requirments documents pour notre programme de travail, pour vous donner une idée de l'endroit où commencer:

  1. Ce programme doit être par base de données.

  2. Il doit être exécuté en tant que service Windows.

  3. Le programme doit être en mesure de traiter des « emplois » de la manière suivante:

  4. emploi doivent être en mesure de vérifier l'existence d'un fichier source, et prendre des mesures en fonction de l'existence ou non du fichier source. (i.e procéder au traitement, vs signaler que le fichier n'est pas là vs l'ignorer car il n'est pas critique que le fichier ne soit pas là.

  5. emploi doivent être en mesure de copier un fichier à partir d'une source vers un emplacement cible ou

  6. Copier un fichier de la source, à un emplacement de mise en scène, effectuer le « traitement », puis copiez soit le fichier original ou un résultat du "traitement" à l'emplacement cible ou

  7. Copiez un fichier de la source vers un emplacement intermédiaire, effectuez un "traitement" et le traitement est le résultat final.

  8. Les sources et destination que les emplois pourraient copier depuis et vers peuvent être disparates: UNC, SFTP, FTP, etc.

  9. Le "traitement", peut être, le chiffrement/déchiffrement d'un fichier, l'analyse d'une des données fichier pour le format correct, l'alimentation du fichier à l'ordinateur central via l'émulation de terminal, etc, généralement mis en œuvre en appelant une ligne de commande en passant les paramètres à un fichier .exe

  10. Les travaux doivent pouvoir être nettoyés après eux-mêmes, selon les besoins. c'est-à-dire supprimer des fichiers intermédiaires ou originaux, copier des fichiers dans un emplacement d'archives, etc.

  11. Le programme doit être en mesure de déterminer le succès et l'échec de chaque phase d'un travail et de prendre les mesures appropriées qui seraient consignées, et éventuellement autre notification, annulation d'un traitement ultérieur en cas de défaillance, etc.

  12. Les tâches doivent être configurées pour être activées à certains moments définis ou à certains intervalles (éventuellement pendant certaines heures définies), c'est-à-dire toutes les 15 minutes, de 9h00 à 5h00: 00

  13. Il doit y avoir une interface utilisateur pour ajouter de nouveaux travaux.

  14. Un bouton doit être enfoncé pour déclencher un travail comme si un événement de temporisateur l'avait activé.

  15. L'affichage standard du programme devrait indiquer à l'opérateur ce qui se passe et si le programme fonctionne correctement.

Tout ceci est basé sur le principe qu'il est normal que vous écriviez votre propre logiciel. Il existe également plusieurs programmes de planificateur de tâches d'entreprise disponibles sur le marché. Acheter sur étagère peut être une meilleure solution pour vous.

+0

Merci pour toutes les suggestions. Beaucoup de bonne idée. – user177213

+0

Il me semble que SQL Server Integration Services peut être un bon ajustement pour les exigences que vous avez mentionnées, avec des ScriptTasks personnalisés pour les opérations qui ne sont pas fournies dans la boîte. Si vous avez déjà implémenté .exe pour ces tâches (comme vous le mentionnez), vous pouvez les utiliser dans le cadre SSIS. Et le déploiement peut être géré à l'aide de Jobs SQL Server, à la demande ou selon un planning. –

+0

Bien sûr, cela est basé sur l'hypothèse que vous utilisez déjà SQL Server - je ne sais pas quelles sont les alternatives disponibles auprès d'autres fournisseurs ... –

5

Tâche planifiée -

  1. Lorsque l'activité doit être effectuée selon un calendrier fixe/prédéfini.
  2. Il prend moins de mémoire et de ressources d'OS.
  3. Installation non requise.
  4. Il peut avoir l'interface utilisateur (par exemple Envoyer un courriel de rappel à défaut de paiement.)

service Windows-
  1. Lorsqu'un contrôle est nécessaire de continuer.
  2. Il rend le système d'exploitation occupé en consommant plus.
  3. Nécessite une installation/désinstallation lors du changement de version.
  4. Aucune interface utilisateur du tout (par ex.Traiter un courrier dès qu'il arrive)

les utiliser à bon escient

Questions connexes