我们在应用程序中配置了几个Quartz作业 . 在开发过程中,我们将石英调度程序置于待机状态 - 但是,我们有时希望手动启动作业(用于开发目的) . 如果我调用fireTrigger,它会告诉我需要启动调度程序 . 但是,如果我启动调度程序,它还会立即安排所有其他作业,这不是我想要的(因为它们可能会在我调试手动触发的作业时触发) .
当我启动调度程序时,我可以暂停所有触发器,但之后我必须处理失火指令等 .
是否有一种简单的方法可以手动触发作业而无需处理暂停和失火(即即使调度程序处于待机状态也能正常工作的fireTrigger)?
4 回答
这是手动触发作业所需的循环:
在Quartz Scheduler中注册的所有作业都由JobKey唯一标识,JobKey由名称和组组成 . 您可以通过调用Scheduler实例的
triggerJob(JobKey jobKey)
来立即触发具有给定JobKey的作业 .Note:
scheduler是整个应用程序中使用的Scheduler实例 . 它的start()方法应该在创建后调用 .
该作业是持久作业,不能将任何触发器或cron附加到它 . 它只能通过调用
triggerJob(JobKey jobKey)
以编程方式触发 .不需要
start-time
和end-time
.您可以尝试在计划程序中添加触发器过滤器
当执行不是易失性(未安排立即运行)并且您处于调试模式时,调试执行过滤器将添加否决 .
这是一个实现示例: