发表于: 2019-10-29 19:19:13

1 1035


今天完成的事情:(一定要写非常细致的内容,比如说学会了盒子模型,了解了Margin)

继续学习quartz:

Quartz 的监听器有Job监听器,Trigger监听器, Scheduler监听器,对不同层面进行监控。 实际业务用的较多的是Job监听器,用于监听器是否执行了,其他的用的相对较少,本知识主要讲解Job的。

MailJobListener 实现了 JobListener 接口,就必须实现如图所示的4个方法

加入监听器就三步:

//增加job监听
MailJobListener mailJobListener=new MailJobListener(); //创建监听器对象
//KeyMatcher比较key上的名称和组是否相等
//JobKey:键由名称和组组成,并且名称在组内必须唯一。 如果仅指定名称,则将使用默认组名称。
//Quartz提供了一种生成器样式的API,用于通过领域特定语言(DSL)来构建与调度相关的实体。 可以通过在类TriggerBuilder
// JobBuilderDateBuilderJobKeyTriggerKey和各种ScheduleBuilder实现上静态导入方法来最好地利用DSL
//KeyMatcher.keyEquals()方法:创建一个与匹配给定键的键匹配的KeyMatcher
KeyMatcher<JobKey> keyMatcher=KeyMatcher.keyEquals(mailJob.getKey());


//getListenerManager获取对调度程序的ListenerManager的引用,通过该引用可以注册侦听器。
//ListenerManager
//客户端程序可能对Quartz“ listener”界面感兴趣。 JobListener接口提供作业执行的通知。
// TriggerListener接口提供触发器触发的通知。 SchedulerListener接口提供有关Scheduler事件和错误的通知。
// 可以通过ListenerManager接口将侦听器与本地调度程序关联。
//侦听器注册顺序被保留,因此,侦听器的通知将按照其注册的顺序进行。
//addJobListener
//将给定的JobListener添加到调度程序中,然后注册它以接收与给定的Matcher匹配的Jobs事件。
// 如果没有提供匹配器,则将使用所有匹配器
scheduler.getListenerManager().addJobListener(mailJobListener,keyMatcher);

JDBCStore 概念

默认情况,Quartz的触发器,调度,任务等信息都是放在内存中的,叫做 RAMJobStore。 好处是快速,坏处是一旦系统重启,那么信息就丢失了,就得全部从头来过。
所以Quartz还提供了另一个方式,可以把这些信息存放在数据库做,叫做 JobStoreTX。 好处是就算系统重启了,目前运行到第几次了这些信息都是存放在数据库中的,那么就可以继续原来的步伐把计划任务无缝地继续做下去。 坏处就是性能上比内存慢一些,毕竟数据库读取总是要慢一些的。






明天计划的事情:(一定要写非常细致的内容)
遇到的问题:(遇到什么困难,怎么解决的)
收获:(通过今天的学习,学到了什么知识)


返回列表 返回列表
评论

    分享到