Описание тега quartz.net

Quartz.NET - это библиотека для планирования заданий с открытым исходным кодом для.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);