What is the difference between scheduler's standby() and pauseAll()?

Viewed 8930

I'm using Quartz Scheduler v.1.8.0.

What's the difference between scheduler.standby() and scheduler.pauseAll()?

standby() - Temporarily halts the Scheduler's firing of Triggers.

pauseAll() - Pause all triggers - similar to calling pauseTriggerGroup(group) on every group, however, after using this method resumeAll() must be called to clear the scheduler's state of 'remembering' that all new triggers will be paused as they are added.

Based on what I've understood from the API documentation, I'm not able to easily/clearly differentiate/distinguish from each one of them. I'm seeing both of them serving the same purpose - temporarily pause/halt all the triggers in the scheduler, and subsequently followed by a start() (for standby) or resumeAll() (for pauseAll) to clear the scheduler's state. Is there any other difference?

Hope experts can help me in understanding any subtle difference.

5 Answers

Here are what I got from source code v1.8.6:

standby() simply freezes the scheduler thread, which means no more trigger will be fired from now on, even those new triggers added later.

start() just resume the scheduler thread, and will not apply misfire policies immediately. But all misfires will be applied later naturally.

pauseAll() is similar to call pauseTriggerGroup() on every now existing trigger groups, which means those new trigger groups added later will be fired normally. And please notice that there is nothing to do with pauseJob() or pauseJobGroup(), it's just about what happening on triggers and their groups.

resumeAll() is similar to call resumeTriggerGroup() on every now existing trigger groups. In addition, misfires will be applied during execution of resumeAll().

While pauseAll() pauses all schedules (already created by that moment), standby() pauses a scheduler itself. Thus when you create a new schedule, after pauseAll() it will be scheduled and run appropriately, but in case of standby() it runs not earlier than a 'start()' method will be called on a scheduler.

Related