Как часто Quartz.net загружает настройки триггера? - PullRequest
0 голосов
/ 07 октября 2018

У меня есть настройка Quartz.net с хранилищем заданий SQLite.

Кроме того, есть: 1. Служба Windows, поддерживающая работу планировщика Quartz.net 2. Веб-приложение ASP.NET MVC, которое действует как панель администратора, котораяпозволяет устанавливать расписание.

Они оба совместно используют одну и ту же базу данных SQLite с таблицами Quartz.net.

Когда я изменяю расписание с помощью второго приложения (веб-приложения), служба Windows ловит эти измененияи следует только что установленному расписанию.

Я подумал, что должен как-то уведомить первое приложение о том, что изменение расписания было внесено и его необходимо перезагрузить (приостановив задания и запустив их снова или каким-либо другим способом).Но оказалось, что приложение Windows Service загружает эти изменения, и нет никакой необходимости в какой-либо другой работе.

Мои вопросы:

  1. Насколько надежна эта конструкция?
  2. Должен ли я просто позволить ему работать так, как сейчас, или мне следует создать собственный механизм перезагрузки настроек расписания?

1 Ответ

0 голосов
/ 17 октября 2018

К счастью, Quartz.Net - это с открытым исходным кодом на GitHub.

Если мы посмотрим на метод Run () в QuartzSchedulerThread, мы увидим, что всякий раз, когдапоток становится доступным, JobStore запрашивается AcquireNextTriggers () .

Здесь мы можем видеть делегата драйвера (который в вашем случае является StdAdoDelegate) запрашивается SelectTriggerToAcquire () .

Этот метод напрямую обращается к вашему хранилищу заданий SQLLite, поэтому, чтобы ответить на два ваших вопроса:

  1. Эта конструкция очень надежна, поскольку она неоднократно и напрямую запрашиваетсяОсновной планировщик.
  2. Возможно, вы должны просто позволить ему работать, как сейчас.
...