相关文章链接
- 定时任务工具类(Cron Util)
- SpringBoot Task
- Quartz(1-Job)
- Quartz(2-Trigger)
- Quartz(3-Scheduler)
- Quartz(4-Listener)
ListenerManager
可以通过ListenerManager向scheduler中添加我们的监听器
public interface ListenerManager {
public void addJobListener(JobListener jobListener);
public void addJobListener(JobListener jobListener, Matcher<JobKey> matcher);
public void addJobListener(JobListener jobListener, Matcher<JobKey> ... matchers);
public void addJobListener(JobListener jobListener, List<Matcher<JobKey>> matchers);
public boolean addJobListenerMatcher(String listenerName, Matcher<JobKey> matcher);
public boolean removeJobListenerMatcher(String listenerName, Matcher<JobKey> matcher);
public boolean setJobListenerMatchers(String listenerName, List<Matcher<JobKey>> matchers);
public List<Matcher<JobKey>> getJobListenerMatchers(String listenerName);
public boolean removeJobListener(String name);
public List<JobListener> getJobListeners();
public JobListener getJobListener(String name);
public void addTriggerListener(TriggerListener triggerListener);
public void addTriggerListener(TriggerListener triggerListener, Matcher<TriggerKey> matcher);
public void addTriggerListener(TriggerListener triggerListener, Matcher<TriggerKey> ... matchers);
public void addTriggerListener(TriggerListener triggerListener, List<Matcher<TriggerKey>> matchers);
public boolean addTriggerListenerMatcher(String listenerName, Matcher<TriggerKey> matcher);
public boolean removeTriggerListenerMatcher(String listenerName, Matcher<TriggerKey> matcher);
public boolean setTriggerListenerMatchers(String listenerName, List<Matcher<TriggerKey>> matchers);
public List<Matcher<TriggerKey>> getTriggerListenerMatchers( String listenerName);
public boolean removeTriggerListener(String name);
public List<TriggerListener> getTriggerListeners();
public TriggerListener getTriggerListener(String name);
public void addSchedulerListener(SchedulerListener schedulerListener);
public boolean removeSchedulerListener(SchedulerListener schedulerListener);
public List<SchedulerListener> getSchedulerListeners();
}
Matcher
KeyMatcher
根据JobKey进行匹配,每个JobDetail都有一个对应的JobKey,里面存储了JobName和JobGroup来定位唯一的JobDetail
//构造匹配pickNewsJob中的JobKey的keyMatcher。
KeyMatcher<JobKey> keyMatcher = KeyMatcher.keyEquals(pickNewsJob.getKey());
//通过这句完成我们监听器对pickNewsJob的唯一监听
scheduler.getListenerManager().addJobListener(myJobListener, keyMatcher);
GroupMatcher
根据组名信息匹配
GroupMatcher<JobKey> groupMatcher1 = GroupMatcher.jobGroupContains("group1");//包含特定字符串
GroupMatcher<JobKey> groupMatcher2 = GroupMatcher.groupEndsWith("oup1");//以特定字符串结尾
GroupMatcher<JobKey> groupMatcher3 = GroupMatcher.groupEquals("jgroup1");//以特定字符串完全匹配
GroupMatcher<JobKey> groupMatcher4 = GroupMatcher.groupStartsWith("jgou");//以特定字符串开头
AndMatcher
对两个匹配器取交集
KeyMatcher<JobKey> keyMatcher = KeyMatcher.keyEquals(pickNewsJob.getKey());
GroupMatcher<JobKey> groupMatcher = GroupMatcher.jobGroupContains("group1");
AndMatcher<JobKey> andMatcher = AndMatcher.and(keyMatcher, groupMatcher);//同时满足两个入参匹配
OrMatcher
对两个匹配器取并集
OrMatcher<JobKey> orMatcher = OrMatcher.or