quartz根据TRIGGER_STATE查询
时间: 2023-06-15 19:03:29 浏览: 109
你可以使用Quartz的JobStore来查询trigger的状态。以下是一个示例查询所有状态为“PAUSED”的trigger的代码片段:
```java
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
List<TriggerKey> pausedTriggerKeys = new ArrayList<>();
for (String groupName : scheduler.getTriggerGroupNames()) {
for (TriggerKey triggerKey : scheduler.getTriggerKeys(GroupMatcher.triggerGroupEquals(groupName))) {
Trigger.TriggerState triggerState = scheduler.getTriggerState(triggerKey);
if (triggerState == Trigger.TriggerState.PAUSED) {
pausedTriggerKeys.add(triggerKey);
}
}
}
for (TriggerKey triggerKey : pausedTriggerKeys) {
System.out.println("Paused Trigger Key: " + triggerKey);
}
```
这将遍历Quartz Scheduler中的所有trigger,获取每个trigger的状态,并将状态为“PAUSED”的trigger的TriggerKey添加到pausedTriggerKeys列表中。最后,你可以遍历pausedTriggerKeys并打印出每个trigger的key。
你也可以使用其他TriggerState枚举值来查询不同状态的trigger,例如Trigger.TriggerState.BLOCKED来查询状态为“BLOCKED”的trigger。
阅读全文