В чем разница между режимами ожидания scheduler() и pauseAll()?
Я использую Quartz Scheduler v.1.8.0.
Какая разница между scheduler.standby() и scheduler.pauseAll()?
режим ожидания() - Временно останавливает запуск плагинов триггеров.
pauseAll() - Приостановить все триггеры - похоже на вызов pauseTriggerGroup (группа) на каждом группы, однако, после использования этого метод resumeAll() должен быть вызван очистить состояние планировщика "помнить", что все новые триггеры будут приостановлены по мере их добавления.
Основываясь на том, что я понял из документации API, я не могу легко/четко различать/отличать от каждого из них. Я вижу, что обе они выполняют одну и ту же цель - временно приостанавливают/останавливают все триггеры в планировщике, а затем следуют start() (для режима ожидания) или resumeAll() (для pauseAll), чтобы очистить состояние планировщика. Есть ли другая разница?
Надежды эксперты могут помочь мне в понимании любой тонкой разницы.
Ответы
Ответ 1
Разница заключается в инструкциях о пропуске триггера, применяющих поведение.
Когда вы вызываете start() после ожидания(), любые пропуски пропуска, которые появляются в режиме ожидания, будут игнорироваться.
Когда вы вызываете resumeAll() после pauseAll(), все осечки, которые появляются во время приостановки планировщика, будут применены.
Ответ 2
Существует разница, когда планировщик возобновляется после standby и pauseAll.
Я сделал разницу полужирным в следующем описании из документации API.
режим ожидания:
void standby() throws SchedulerException Временно останавливает планировщик запуск триггеров.
Когда вызывается start() (чтобы вызвать планировщик из режима ожидания), инструкции по пропуску триггера НЕ будут применяются во время выполнения start() - любые осечки будут обнаружено сразу после Обычный ресурс JobStore).
Планировщик не уничтожен, и может быть перезапущен в любое время.
pauseAll:
void pauseAll() throws SchedulerException Пауза всех триггеров - похоже на вызов pauseTriggerGroup (group) на каждом группы, однако, после использования этого метод resumeAll() должен быть вызван очистить состояние планировщика "помнить", что все новые триггеры будут приостановлены по мере их добавления.
При вызове функции resumeAll() un-pause), запуск осечки инструкции будут применены.
Ответ 3
start() и standby() - это методы для каждого экземпляра. Другие экземпляры, запущенные в кластерном режиме, будут продолжать запускать задания.
resumeAll() и pauseAll() применимы ко всему кластеру.
Ответ 4
Пока pauseAll()
приостанавливает все расписания (уже созданные этим моментом), standby()
приостанавливает сам планировщик. Таким образом, когда вы создаете новое расписание, после pauseAll()
он будет запланирован и запущен соответствующим образом, но в случае standby()
он запускается не раньше, чем метод "start()" будет вызываться в планировщике.