web-dev-qa-db-fra.com

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

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

51
ssmith

http://quartznet.sourceforge.net/

"Quartz.NET est un portage open source très propulaire (sic!) Java framework de planification de travaux, Quartz."

PS: Parole aux sages, n'essayez pas de naviguer sur quartz.net au travail ;-)

61
Tiberiu Ana

J'ai utilisé Quartz dans mes Java jours et cela a très bien fonctionné. Je l'utilise maintenant pour certains travaux .Net et cela fonctionne encore mieux (bien sûr, il y a un certain nombre d'années pour cela) avoir stabilisé.) J'appuie donc certainement ses recommandations.

Une autre chose intéressante que vous devriez regarder, avec laquelle je viens de commencer à jouer est le nouveau System.Threading.Tasks dans .Net 4.0. Je viens d'utiliser les tâches pour paralléliser le travail et il 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. Peut-être mérite-t-elle au moins une enquête.

7
MikeD
6
Galwegian

J'ai lu Quartz dans cette question Comment puis-je planifier un service Windows C # pour effectuer une tâche quotidiennement? . Il s'agit d'une bibliothèque C # et permet une planification flexible.

5
Tundey

Le quartz semble être une bonne solution.

J'ai récemment (cette année) dû écrire un planificateur de tâches personnalisé sur un projet majeur sur lequel je travaillais. Ils ne pouvaient pas non plus utiliser le planificateur de tâches Windows et souhaitaient également pouvoir exécuter des fonctionnalités personnalisées en téléchargeant des assemblys (via un site Web ASP.net) et demander au service d'exécuter la tâche appropriée à l'heure spécifiée.

La chose était honnêtement un peu un cauchemar (pas tellement à concevoir et à mettre en œuvre, mais la logique de planification était un peu fastidieuse).

Je recommanderais fortement d'épuiser toutes les autres avenues avant de décider de "rouler la vôtre" (comme réinventer la roue!).

3
RobS

Il existe un nouveau planificateur basé sur le cloud de Aditi Technologies appelé Scheduler .

Scheduler permet aux développeurs de planifier l'exécution de tâches via des webhooks HTTP qui s'exécutent sur des planifications CRON simples ou complexes.

2
Naveen Vijay