У меня есть приложение, которое использует кластерные задания Quartz, и я хотел бы условно отключить некоторые (но не все) задания локально - без переопределения настроек задания в БД.До сих пор я видел решения, которые предлагают полностью отключить планировщик Quartz, что не подходит для моих целей (я хочу, чтобы некоторые задания выполнялись).
В наших настройках задания обычно выполняются на сервере Dev, а потому, что разработчикичасто работаем над кодом, мы хотим иметь возможность выполнять код локально, в то время как к общей разделяемой базе данных обращаются.
Кажется, проблема в том, что Quartz воспринимает конфигурацию заданий, хранящуюся в БД, как евангелие, и кажется, чточтобы быть ничем, я могу сделать на месте, чтобы сказать: «Нет, пожалуйста, не запускайте эту работу!»Если я не создаю экземпляр триггера задания, Quartz все равно создает экземпляр QuartzJobBean и пытается запустить его.
Есть два решения, которые я вижу, но мне не нравится:
Сброс расписания на «0 0 0 0 0?».Это отключит задание, но не только локально - оно переопределит настройки задания в БД, пока другой (активный) экземпляр не будет запущен в том же кластере, и расписание не будет сброшено снова ... грязно.
Притворись исполненным.Когда "executeInternal ()" вызывается, пропустите выполнение.Это заставило бы Кварц думать, что задание было выполнено, хотя на самом деле это не так.Опять же, хорошо для меня, но не хорошо для кластера.
Имеет ли Quartz возможность для приложения сказать "Игнорировать меня! Этот экземпляр приложения не активен для выполнения этой конкретной работы"или это по сути "все или ничего", когда речь идет об отдельных рабочих местах?