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

Je cherche une bibliothèque C #, de préférence open source, qui me permettra de planifier les tâches avec une certaine flexibilité. Plus précisément, je devrais être en mesure de programmer des choses à exécuter toutes les N unités de temps, ainsi que “Chaque jour de la semaine à l’heure XXXX” ou “Chaque lundi à l’heure XXXX”. Plus de fonctionnalités que cela 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 Windows, «at», «Cron» et toute application tierce nécessitant une installation et / ou une interface graphique pour fonctionner. Je cherche une bibliothèque.

http://quartznet.sourceforge.net/

“Quartz.NET est un port de framework de planification de travaux Java open source très pratique (sic!), Quartz.”

PS: Word to the wise, n’essayez pas de naviguer vers quartz.net lorsque vous êtes au travail 😉

J’ai utilisé Quartz dans mes jours de Java et cela a fonctionné très bien. 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 qu’il se soit stabilisé). Je suis donc certainement en faveur des recommandations pour cela.

Une autre chose intéressante que vous devriez regarder, que je viens tout juste de commencer à utiliser, est le nouveau System.Threading.Tasks dans .Net 4.0. Je viens d’utiliser les tâches de parallélisation et cela profite grandement des processeurs / processeurs multiples. J’ai remarqué qu’il y a une classe nommée TaskScheduler, je ne l’ai pas examinée en détail, mais elle a des méthodes comme QueueTask, DeQueTask, etc. Cela pourrait valoir au moins quelques recherches.

Voir Une nouvelle bibliothèque de classes du planificateur de tâches pour .NET on Codeproject.

J’ai lu à propos de Quartz dans cette question. Comment pourrais-je programmer un service Windows C # pour effectuer une tâche quotidiennement? . C’est une bibliothèque C # et permet une planification flexible.

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 cauchemardesque (pas tellement à concevoir et à mettre en œuvre, mais la logique de planification était un peu difficile).

Je recommande fortement d’épuiser toutes les autres voies avant de décider de “rouler le vôtre” (aka réinventer la roue!).

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

Le planificateur permet aux développeurs de planifier l’exécution de tâches via des Webhooks HTTP exécutés sur des programmes CRON simples ou complexes.