Описание тега quartz.net
Quartz.NET - это полнофункциональная служба планирования заданий с открытым исходным кодом, которую можно интегрировать или использовать вместе практически с любым приложением.NET - от самого маленького автономного приложения до крупнейшей системы электронной коммерции.
Quartz.Net можно использовать для создания простых или сложных расписаний для выполнения десятков, сотен или даже десятков тысяч заданий; задания, задачи которых определены как стандартные компоненты.NET, которые запрограммированы для выполнения требований вашего приложения. Планировщик включает множество функций корпоративного класса, например поддержку транзакций и кластеризацию. Quartz.NET - это порт библиотеки Java Quartz.
Что может сделать для вас кварц?
Если у вашего приложения есть задачи, которые необходимо выполнить в определенные моменты времени, или если ваша система имеет повторяющиеся работы по обслуживанию, то Quartz может быть вашим идеальным решением.
Примеры использования планирования заданий с Quartz:
1. Схема рабочего процесса:
Поскольку новый заказ изначально размещен, запланируйте запуск задания ровно через два часа, которое будет проверять статус этого заказа и запускать предупреждающее уведомление, если сообщение с подтверждением заказа еще не было получено для заказа, а также изменение статус заказа на "ожидает вмешательства".
2. Обслуживание системы:
Запланируйте задание по выгрузке содержимого базы данных в XML-файл каждый рабочий день (все рабочие дни, кроме праздников) в 23:30.
3. Служба напоминания: предоставление услуг напоминания в приложении.
Пример расписания работ:
// Construct a scheduler factory
ISchedulerFactory schedFact = new StdSchedulerFactory();
// Get a scheduler
IScheduler sched = schedFact.GetScheduler();
sched.Start();
// Define the job and tie it to our HelloJob class
IJobDetail job = JobBuilder.Create<HelloJob>()
.WithIdentity("myJob", "group1")
.Build();
// Trigger the job to run now, and then every 40 seconds
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("myTrigger", "group1")
.StartNow()
.WithSimpleSchedule(x => x
.WithIntervalInSeconds(40)
.RepeatForever())
.Build();
sched.ScheduleJob(job, trigger);