Подтвердить что ты не робот

Рекомендовать библиотеку планирования задач С#

Я ищу библиотеку С#, предпочтительно с открытым исходным кодом, которая позволит мне планировать задачи с достаточной гибкостью. В частности, я должен иметь возможность планировать, чтобы все выполнялось каждые N единиц времени, а также "Каждый будний день в XXXX раз" или "Каждый понедельник в XXXX раз". Больше возможностей, чем было бы хорошо, но не обязательно. Это то, что я хочу использовать в Azure WorkerRole, который сразу же исключает запланированные задачи Windows, "на", "Cron" и любое стороннее приложение, которое требует установки и/или графического интерфейса для работы. Я ищу библиотеку.

4b9b3361

Ответ 1

http://quartznet.sourceforge.net/

"Quartz.NET - это порт очень пропульсивной (sic!) с открытым исходным кодом структуры планирования работы Java, Quartz."

PS: Слово мудрому, не пытайтесь просто перейти к quartz.net, когда на работе; -)

Ответ 2

Я использовал Quartz в свои дни Java, и он отлично работал. Я сейчас использую его для какой-то работы .Net, и он работает еще лучше (конечно, есть несколько лет, чтобы он мог стабилизироваться). Поэтому я, разумеется, второй раз рекомендую для этого.

Еще одна интересная вещь, на которую вы должны обратить внимание, которую я только начал играть, - это новая программа System.Threading.Tasks в .NET 4.0. Я только что использовал задачи для распараллеливания работы, и он пользуется большим преимуществом для нескольких ядер/процессоров. Я заметил, что в нем есть класс TaskScheduler, я не смотрел его подробно, но он имеет такие методы, как QueueTask, DeQueTask и т.д. Возможно, стоит хоть какое-то исследование.

Ответ 5

Кварц кажется хорошим решением.

Мне недавно (в этом году) пришлось написать персонализированный планировщик задач по крупному проекту, над которым я работал. Они также не могли использовать планировщик заданий Windows, а также хотели иметь возможность выполнять пользовательские функции благодаря загрузке сборок (через веб-сайт ASP.net), а служба выполнила соответствующую задачу в указанное время.

Вещь была честно немного кошмаром (не так много для проектирования и реализации, но логика планирования была немного перетянута).

Я бы очень рекомендовал исчерпать все другие возможности, прежде чем решиться "бросить свои собственные" (a.k.a изобретать колесо!).

Ответ 6

Существует новый планировщик облачных вычислений из Aditi Technologies, называемый Scheduler.

Планировщик позволяет разработчикам планировать выполнение задач через HTTP webhooks, которые запускаются на простых или сложных графиках CRON.