我需要构建一个显示某种“工作队列”的gui。
我动态创建触发器,并使用jobScheduler.scheduleJob(trigger);
安排它们。我还通过触发器的dataMap传递了一些数据。
如何获得尚未触发的触发器列表?
我找到了一种方法来获取当前正在运行的作业,但没有任何方法来获取已注册触发器的列表。
我应该自己维护此列表,并通过实现触发器侦听器完成执行后删除内容吗?
我是否可以获取基础JobStore并调用getTriggerNames()或类似方法?但是我如何获得JobStore。我所拥有的只是一个Scheduler实例(实际上是一个StdScheduler),似乎无法从中获取JobStore实例。
((我使用spring从SchedulerFactoryBean获取Scheduler)
是计划程序中的方法getTriggerNames()。这样就解决了我的问题。
@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()));
}