调度程序的待机器()和pauseall()有什么区别?
-
01-10-2019 - |
题
我正在使用Quartz Scheduler v.1.8.0。
有什么区别 Scheduler.standby() 和 Scheduler.pauseall()?
支持() - 暂时停止调度程序的触发器。
pauseall() - 暂停所有触发器 - 类似于调用每个组上的pausetriggergroup(组),但是,必须调用此方法resumeall()以清除调度程序的“记住”状态,即在添加时将暂停所有新触发器。
根据我从API文档中理解的内容,我无法轻松/明确地区分/与每个文档区分开。我看到他们两个都有相同的目的 - 暂时暂停/停止调度程序中的所有触发器 开始() (待机)或 RESUMEALL() (供Pauseall)清除调度程序的状态。还有其他区别吗?
希望专家可以帮助我理解任何细微的差异。
解决方案
区别在于应用行为的触发失火指令。
当您在standby()之后调用start()时,备用时出现的任何失火都将被忽略。
当您在pauseall()之后致电jusumeall()时,将应用计划时出现的所有misfires。
其他提示
在API文档的以下描述中,我在BOLD中有所作为。
支持 :
void Standby()抛出ScheduleRexception暂时停止调度程序的触发器。
当调用start()调用(将调度程序带出备用模式)时,在执行start()方法执行期间将不会应用触发失火说明 - 后来将立即检测到任何失火(通过乔布斯的正常过程) 。
调度程序没有被销毁,可以随时重新启动。
Pauseall :
void pauseall()抛出Schedulerexception暂停所有触发器 - 类似于每个组上调用PausetigriggerGroup(组),但是,必须调用此方法resumeall()以清除调度程序的“记住”状态,以确保所有新触发器都将被暂停为所有新触发器他们被添加。
当调用RESUMEALL()(未暂停)时,将应用触发错误说明。
这是我从源代码v1.8.6获得的内容:
standby()
只需冻结调度程序线程,这意味着从现在开始将不再发射触发器, 甚至那些新的触发器稍后添加.
start()
只需恢复调度程序线程,并且不会应用失火政策 立即地. 。但是所有的失火将在后来自然应用。
pauseAll()
类似于通话 pauseTriggerGroup()
每个 现在现有的触发组, ,这意味着稍后添加的那些新触发器组将正常发射。并且请注意,与 pauseJob()
或者 pauseJobGroup()
, ,这只是触发器及其群体的情况。
resumeAll()
类似于通话 resumeTriggerGroup()
在现在现有的触发组上。此外,执行期间将应用失火 resumeAll()
.
start()和待机()是每种构成方法。以聚类模式运行的其他实例将继续触发作业。
RESUMEALL()和PAUSEALL()适用于整个集群。
尽管 pauseAll()
暂停全部 时间表 (那一刻已经创建), standby()
停顿 调度程序本身. 。因此,当您创建新的时间表时 pauseAll()
它将安排并适当地运行,但是如果 standby()
它运行的时间不早于调度程序的“ start()”方法。