我正在使用Quartz Scheduler v.1.8.0。

有什么区别 Scheduler.standby()Scheduler.pauseall()?

支持() - 暂时停止调度程序的触发器。

pauseall() - 暂停所有触发器 - 类似于调用每个组上的pausetriggergroup(组),但是,必须调用此方法resumeall()以清除调度程序的“记住”状态,即在添加时将暂停所有新触发器。

根据我从API文档中理解的内容,我无法轻松/明确地区分/与每个文档区分开。我看到他们两个都有相同的目的 - 暂时暂停/停止调度程序中的所有触发器 开始() (待机)或 RESUMEALL() (供Pauseall)清除调度程序的状态。还有其他区别吗?

希望专家可以帮助我理解任何细微的差异。

有帮助吗?

解决方案

区别在于应用行为的触发失火指令。

当您在standby()之后调用start()时,备用时出现的任何失火都将被忽略。

当您在pauseall()之后致电jusumeall()时,将应用计划时出现的所有misfires。

其他提示

恢复调度程序后有区别 支持Pauseall.

在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()”方法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top