2010-09-06 1 views
14

Я использую Quartz Scheduler v.1.8.0.В чем разница между ожиданиями планировщика() и pauseAll()?

В чем разница между scheduler.standby() и scheduler.pauseAll()?

ожидания() - Временно приостанавливает стрельбу планировщика триггеров.

pauseAll() - Pause все триггеры - аналогично вызову pauseTriggerGroup (группы) на каждой группе, однако, после использования этого метод resumeAll() должен быть вызван в состоянии ясно планировщика из ' помня, что все новые триггеры будут приостановлены по мере их добавления.

Основываясь на том, что я понял из документации API, я не могу легко/четко различать/отличать от каждого из них. Я вижу, что оба они выполняют одну и ту же цель - временно приостанавливают/останавливают все триггеры в планировщике, а затем следуют start() (для режима ожидания) или resumeAll() (for pauseAll), чтобы очистить состояние планировщика. Есть ли другая разница?

Надежды эксперты могут помочь мне в понимании любой тонкой разницы.

ответ

16

Разница заключается в инструкциях по пропуску триггера, применяющих поведение.

Когда вы вызываете start() после ожидания(), любые пропуски зажигания, которые появляются в режиме ожидания, будут игнорироваться.

Когда вы вызываете resumeAll() после pauseAll(), все осечки, которые появляются во время приостановки планировщика, будут применены.

+1

Это неверно. если вы вызываете standby(), а затем start(), триггерные ошибки будут игнорироваться только во время выполнения start(), а не работать всю продолжительность между вызовом в режиме ожидания() и start(). – pkrish

6

Существует разница, когда планировщик возобновляется после standby и pauseAll.

Я получил выделение полужирным шрифтом в следующем описании из документации API.

ожидание:

аннулируется ожидание() бросков SchedulerException Временно останавливает планировщик стрельбу триггеров.

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

Планировщик не уничтожается, и может быть перезапущен в любое время.

pauseAll:

аннулируются pauseAll() бросает SchedulerException Pause все триггеры - аналогично вызову pauseTriggerGroup (группа) на каждой группе, однако, после использования этого метод resumeAll() должен быть вызван в , чтобы очистить состояние планировщика , «запоминая», что все новые триггеры будут приостановлены по мере их добавления.

Когда resumeAll() вызывается (к ун-паузы), триггер пропусков зажигания инструкции будут применены.

0

start() и standby() предназначены для каждого экземпляра. Другие экземпляры, запущенные в кластерном режиме, будут продолжать запускать задания.

resumeAll() и pauseAll() применимы ко всему кластеру.

0

Хотя pauseAll() пауз всех график (уже созданная к этому моменту), standby() пауза сам планировщик. Таким образом, когда вы создаете новое расписание, после pauseAll() он будет запланирован и запущен соответствующим образом, но в случае standby() он запускается не раньше, чем метод «start()» будет вызываться в планировщике.