Добавить календарь в Quartz задание по конфигурации - PullRequest
0 голосов
/ 25 мая 2018

Я хочу заблокировать некоторые из моих заданий Quartz для работы в праздничные дни, на официальной странице Quartz о 1003 * * * * * * * * * можно узнать:

Объекты календаря Quartz.NET, реализующиеИнтерфейс ICalendar может быть связан с триггерами во время сохранения триггера в планировщике.Календари полезны для исключения блоков времени из расписания срабатывания триггера.Например, вы можете создать триггер, который запускает задание каждый рабочий день в 9:30, но затем добавить календарь, который исключает все праздничные дни.

Мои триггеры определены в файлах конфигурации,Например:

<trigger>
  <simple>
    <name>a trigger</name>
    <group>a trigger group</group>
    <description>a trigger description</description>
    <job-name>AJobName</job-name>
    <job-group>a job group</job-group>
    <job-data-map>
      <entry>
        <key>param1</key>
        <value>param1value</value>
      </entry>
    </job-data-map>
    <repeat-count>-1</repeat-count>
    <repeat-interval>300000</repeat-interval>
  </simple>
</trigger>

Могу ли я без изменения кода C # блокировать срабатывание по датам в моем календаре праздников?Если нет, могу ли я хотя бы сохранить определение триггера в конфиге и добавить календарь в коде и назначить его для конкретного триггера?

Итак, это программное решение не то, что я ищу: программно создать триггер и назначить календарь .

1 Ответ

0 голосов
/ 25 мая 2018

Триггерная конфигурация XML позволяет настроить календарь по имени:

<trigger>
  <simple>
    <calendar-name>myHolidayCalendar<calendar-name>
  </simple>
</trigger>

Для того, чтобы это работало, календарь праздников должен быть зарегистрирован в планировщике:

var calendar = new HolidayCalendar();
calendar.addExcludedDate(DateTime.Today);
scheduler.addCalendar("myHolidayCalendar", calendar, false);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...