Кварцевый планировщик накладных расходов на обслуживание и производительность - PullRequest
0 голосов
/ 31 января 2020

В настоящее время мы оцениваем кварцевый планировщик для использования в нашем проекте. Для нашего варианта использования нам нужен только один временной триггер для запуска в какой-то момент в будущем, он не должен быть повторяемым или хронным триггером.

Итак, в моем ПО C я создаю новый простой одноразовый триггер, когда происходит бизнес-событие. Я могу видеть в кластерной среде (используя хранилище кварца JDB C), триггеры сбалансированы / распределены по нескольким узлам.

Желаемое поведение наблюдается с PO C, но, с точки зрения производительности, как Это будет дорого, если мы создадим новый одноразовый триггер каждый раз, когда работаем в масштабе. Насколько я понимаю, одним из узких мест будет вздутие базы данных с помощью триггеров, возможное решение для очистки базы данных - добавить фоновую задачу для очистки старых триггеров.

Может ли кто-нибудь поделиться вашим опытом, болевыми точками по поддержанию планировщика с нашим дизайном и любыми входами для улучшения дизайна

1 Ответ

0 голосов
/ 31 января 2020

Вы можете безопасно использовать одноразовые триггеры, и они будут автоматически удалены Quartz после срабатывания. Что происходит, так это то, что Кварц проверяет все триггеры и определяет, сработают ли эти триггеры в какой-то момент в будущем. Если они этого не делают, Кварц просто удаляет их из магазина, потому что их не имеет смысла хранить.

Несколько схожий принцип применим к рабочим местам. Если у задания нет связанных триггеров, Quartz автоматически удаляет его из хранилища, если только для задания не установлен флаг долговечности true.

Так что в вашем случае вы, вероятно, захотите зарегистрировать кучу долговременных заданий, а затем Ваше приложение будет создавать одноразовые триггеры для этих заданий по мере необходимости. Задания останутся в хранилище, и триггеры будут автоматически очищены, когда они будут выполнены.

...