51 votes

Recommander une bibliothèque de planification des tâches en C#

Je suis à la recherche d'une bibliothèque C#, de préférence open source, qui me permettra de planifier des tâches avec une certaine flexibilité. Plus précisément, je devrais être en mesure de programmer des tâches à exécuter toutes les N unités de temps ainsi que "Tous les jours de la semaine à XXXX heure" ou "Tous les lundis à XXXX heure". D'autres fonctionnalités seraient bienvenues, mais pas nécessaires. C'est quelque chose que je veux utiliser dans un WorkerRole Azure, ce qui exclut immédiatement les tâches programmées de Windows, "at", "Cron", et toute application tierce qui nécessite une installation et/ou une interface graphique pour fonctionner. Je suis à la recherche d'une bibliothèque.

61voto

Tiberiu Ana Points 2907

http://quartznet.sourceforge.net/

"Quartz.NET est un portage du très populaire (sic !) framework Java open source de planification des tâches, Quartz."

PS : Un conseil, n'essayez pas de naviguer sur quartz.net lorsque vous êtes au travail ;-)

7voto

MikeD Points 373

J'ai utilisé Quartz à l'époque où j'étais en Java et il fonctionnait très bien. Je l'utilise maintenant pour certains travaux en .Net et il fonctionne encore mieux (bien sûr, il y a un certain nombre d'années pour qu'il se soit stabilisé). Je suis donc tout à fait d'accord avec les recommandations qui lui sont faites.

Une autre chose intéressante à laquelle vous devriez vous intéresser, et avec laquelle je viens de commencer à jouer, est le nouveau System.Threading.Tasks de .Net 4.0. J'ai juste utilisé les tâches pour paralléliser le travail et cela tire un grand avantage des multi-cœurs/processeurs. J'ai remarqué qu'il y a une classe nommée TaskScheduler, je ne l'ai pas regardée en détail, mais elle a des méthodes comme QueueTask, DeQueTask, etc. Cela pourrait valoir la peine de faire quelques recherches au moins.

6voto

Galwegian Points 29966

5voto

Tundey Points 2145

J'ai lu sur Quartz dans cette question Comment puis-je programmer un service Windows C# pour qu'il exécute une tâche quotidiennement ? . Il s'agit d'une bibliothèque C# qui permet une programmation flexible.

3voto

RobS Points 6280

Le quartz semble être une bonne solution.

J'ai récemment (cette année) dû écrire un planificateur de tâches personnalisé pour un projet important sur lequel je travaillais. Eux aussi ne pouvaient pas utiliser le planificateur de tâches de Windows, et voulaient également pouvoir exécuter une fonctionnalité personnalisée en téléchargeant des assemblages (via un site Web ASP.net) et en faisant en sorte que le service exécute la tâche appropriée au moment spécifié.

Honnêtement, ce projet a été un peu un cauchemar (pas tant au niveau de la conception et de la mise en œuvre que de la logique de programmation).

Je vous recommande vivement d'épuiser toutes les autres possibilités avant de décider de "faire votre propre choix" (c'est-à-dire de réinventer la roue !).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X