如何获得注册到Quartz Scheduler的触发器列表

问题描述 投票:4回答:2

我需要构建一个显示某种“工作队列”的gui。

我动态创建触发器,并使用jobScheduler.scheduleJob(trigger);安排它们。我还通过触发器的dataMap传递了一些数据。

如何获得尚未触发的触发器列表?

我找到了一种方法来获取当前正在运行的作业,但没有任何方法来获取已注册触发器的列表。

我应该自己维护此列表,并通过实现触发器侦听器完成执行后删除内容吗?

我是否可以获取基础JobStore并调用getTriggerNames()或类似方法?但是我如何获得JobStore。我所拥有的只是一个Scheduler实例(实际上是一个StdScheduler),似乎无法从中获取JobStore实例。

((我使用spring从SchedulerFactoryBean获取Scheduler)

java quartz-scheduler
2个回答
4
投票

是计划程序中的方法getTriggerNames()。这样就解决了我的问题。


0
投票
@Autowired private Scheduler scheduler; public void x() { scheduler.getTriggerKeys(GroupMatcher.anyGroup()).stream()...; // like scheduler.getTriggerKeys(GroupMatcher.anyGroup()).stream() .filter(__ -> { try { return "YYY".equals(scheduler.getTrigger(__) .getJobDataMap().getString("myParam")); } catch (SchedulerException e) { return false; } }); // or like scheduler.getTriggerKeys(GroupMatcher.anyGroup()).stream() .filter(__ -> "YYY".equals(__.getName())); }
© www.soinside.com 2019 - 2024. All rights reserved.