Quartz.NET vs Windows tâches programmées. Comment les différents sont-ils?

je cherche une comparaison entre Quartz.NET et Windows tâches programmées?

en quoi sont-ils différents? Quels sont les avantages et les inconvénients de chacun? Comment puis-je choisir lequel utiliser?

TIA,

24
demandé sur Marko Lahma 2011-02-25 11:30:30

4 réponses

avec Quartz.NET je pourrais comparer quelques-uns des points précédents:

  1. Code pour écrire - vous pouvez exprimer votre intention en langage. net, écrire des tests unitaires et de déboguer la logique
  2. intégration avec le journal d'événements, vous avez commun.Journalisation qui permet d'écrire même à db..
  3. robuste et fiable aussi
  4. encore plus riche API

c'est surtout une question de ce que vous besoin. Windows tâches programmées pourrait vous donner tout ce dont vous avez besoin. Mais si vous avez besoin de groupage (travailleurs répartis), de contrôle à petite échelle sur les règles de déclenchement ou de manipulation des ratés, vous pouvez vérifier ce que Quartz.NET a offrir sur ces domaines.

prenez le plus simple qui répond à vos besoins, mais assez abstrait pour permettre le changement.

19
répondu Marko Lahma 2011-02-26 19:20:17

ma réaction viscérale serait d'essayer d'obtenir le WinScheduler intégral de travailler avec vos besoins avant d'installer encore un autre scheduler-raisonnement:

  1. aucune installation requise-installée et activée par défaut
  2. pas de code à écrire - emplois exprimé en tant que métadonnées
  3. intégration avec le journal d'événements etc.
  4. robuste et fiable - assez bon pour MSFT, Google etc.
  5. API raisonnablement riche-créer des emplois, vérifier l'état, etc.
  6. intégré à des outils de gestion à distance
  7. l'intégration de la sécurité - exécuter des travaux dans les informations d'identification différentes
  8. suivi de l'outillage

puis atteindre pour le Quartz si elle ne répond pas à vos besoins. Quartz a certainement beaucoup de ces caractéristiques aussi, mais résistez à ajouter encore un autre service pour posséder et gérer si vous le pouvez.

15
répondu stephbu 2011-02-25 08:37:09

une distinction importante, pour moi, qui n'est pas incluse dans les autres réponses est ce qui est exécuté par le planificateur.

Windows Task Scheduler ne peut exécuter que des programmes exécutables et des scripts. Le code écrit pour être utilisé dans Quartz peut interagir directement avec les composants .NET de votre projet.

avec le planificateur de tâches, vous devrez écrire un exécutable shell ou un script. À l'intérieur de la coquille, vous pouvez interagir avec vos composantes du projet. Bien que l'écriture de ce code shell ne soit pas un processus difficile, vous devez envisager de déployer les fichiers supplémentaires.

si vous prévoyez ajouter plus de tâches planifiées au cours de la durée du projet, vous pourriez avoir besoin de créer des interpréteurs de commandes ou des fichiers de script supplémentaires, ce qui nécessite des mises à jour du processus de déploiement. Avec Quartz, vous n'avez pas besoin de ces fichiers, ce qui réduit l'effort total nécessaire pour créer et déployer des tâches supplémentaires.

2
répondu hurcane 2016-10-06 12:45:31

malheureusement, Quartz.NET les assemblages de tâches ne peuvent pas être mis à jour sans redémarrer le processus/l'hôte/le service. C'est assez gros pour certains (y compris moi).

il est tout à fait possible de construire un cadre pour les emplois en cours d'exécution sous tâche Scheduler. Les assemblages basés sur MEF peuvent être appelés par une seule application de console, tout étant géré via une interface de configuration. Voici un emballage géré populaire:

j'ai apprécié mon bref temps de travail avec Quart.NET, mais l'exigence de redémarrage était un problème trop important pour être surmonté. Marko a fait un grand travail avec elle au fil des ans, et il a toujours été serviable et réceptif. Peut-être qu'un jour le projet sera multiple AppDomain soutien, qui permettrait d'aborder cette. (Cela dit, il promet d'être beaucoup de travail. Bravo à lui et ses collaborateurs s'ils décident de la prendre sur.)

pour paraphraser Marko, si vous avez besoin:

  1. Clustering (distribué des travailleurs)
  2. un contrôle plus fin sur le déclenchement ou les ratés de la manipulation des règles

...alors Quartz.NET sera votre exigence.

0
répondu InteXX 2018-01-23 20:59:17