
quartz专题
文章平均质量分 82
coderchenhao
这个作者很懒,什么都没留下…
展开
-
quartz框架(十)-QuartzSchedulerThread
QuartzSchedulerThread本篇博文,博主将介绍QuartzSchedulerThread的相关内容。话不多说,直接进入正题。什么是QuartzSchedulerThread?从源码和该类的名称上,QuartzSchedulerThread首先是一个线程类,因此它继承了Thread类。从这一点上看,代码的自解释性非常重要。从quartz框架整体上而言,QuartzSchedulerThread相当于管理者线程,它从JobStore中获取需要触发的任务,交给ThreadPool线程池去分原创 2022-03-17 23:48:22 · 1320 阅读 · 0 评论 -
quartz框架(九)-JobRunShell
JobRunShell上篇博文,博主讲了Listener相关的内容。本篇博文,博主将要详细介绍一下JobRunShell的功能。简单的来说,JobRunShell就是Job实例运行时所在的环境,也就是说在JobRunShell中调用Job接口的execute方法。Runnable接口在讲解JobRunShell之前,我们先了解或者加强一下Runnable接口的相关知识。在java编程中,创建Thread一般有三种方式。第一种是定义一个类去继承Thread类,并重写run方法。第二种是在创建Thread原创 2022-03-16 22:14:02 · 1220 阅读 · 0 评论 -
quartz框架(八)-Listener
Listener上篇博文,博主介绍了jobStore相关的内容。本篇博文,博主将介绍quartz框架中监听器的使用以及原理。监听器在开源框架中十分常见,通过监听器我们可以实现一些定制化的功能。什么是Listener?监听器就是在某一个事件发生的时候,被监听对象会根据对应事件,循环调用监听对象(监听对象需要监听器对应的方法)的方法。这么说的话,是不是跟设计模式中的观察者模式一模一样。关于quartz框架中使用到的设计模式,博主会在后面的具体某一篇文章中详细介绍。JobListenerJobListe原创 2022-03-16 20:35:34 · 1051 阅读 · 0 评论 -
quartz框架(七)-JobStore
JobStore在之前的博文中,博主已经写了关于Job的相关内容。本篇博文,博主将介绍JobStore相关的内容。JobStore是存放Job和Trigger的地方。当我们调用Scheduler对象的scheduleJob时就会将其存入JobStore中,然后供quartzSchedulerThread使用。为什么需要JobStore?因为我们需要被Scheduler调用的任务大多数并不是一次性的任务,而是需要被定时触发,或者某个时间点才能被触发的。因此我们需要一个容器来存储Job和Trigger的原创 2022-03-13 12:15:55 · 2652 阅读 · 0 评论 -
quartz框架(六)-ThreadPool
ThreadPool本篇博文,博主将介绍Quartz框架中ThreadPool线程池相关的内容。线程池顾名思义,就是一个可以帮助我们来进行线程资源管理的对象。在web开发中,常见的就有数据库连接池,http连接池,redis连接池等。在看这篇文章之前,读者需要先具备一定的多线程和锁的知识,如使用wait和notify方法,实现生产者和消费者功能。为什么要用线程池?线程池可以复用线程,减少线程的创建和销毁次数。可以提高程序的响应速度。可以对线程资源进行统一管理,比如监控。…接口定义quar原创 2022-03-12 23:43:38 · 2526 阅读 · 0 评论 -
quartz框架(五)-Trigger相关内容
Trigger相关内容上篇博文,博主介绍了Job的相关内容。本篇博文,博主将介绍Trigger相关的内容。TriggerTrigger是触发器的意思,它只定义Trigger相关属性的Get方法。一个Trigger只能关联一个Job,而一个Job可以关联到多个Trigger。Triigger的相关接口如下:getKey,Trigger的唯一标识。getJobKey,关联Job的唯一标识。getStartTime,开始触发时间。getEndTime,结束触发时间。getNextFireTim原创 2022-03-12 21:38:57 · 756 阅读 · 0 评论 -
quartz框架(四)-Job相关内容
Job相关内容本篇博文,博主主要介绍job相关的内容。Jobjob是业务方法需要实现的接口,代表需要被调度框架进行调度的任务。job源码如下所示,从源码中我们可以看到,job接口只有一个excute方法,它的入参只有一个JobExecutionContext,并且允许抛出JobExecutionException异常。public interface Job { void execute(JobExecutionContext context) throws JobExe原创 2022-03-12 18:13:13 · 1096 阅读 · 0 评论 -
quartz框架(三)-调度器创建之实例化
调度器创建之实例化博主的前一篇博文主要介绍了schedule创建时的配置文件加载,下面博主将介绍一下scheduler的instantiate方法。代码回顾public Scheduler getScheduler() throws SchedulerException { if (cfg == null) { initialize(); } SchedulerRepository schedRep = SchedulerRep原创 2022-03-12 16:12:37 · 1046 阅读 · 0 评论 -
quartz框架(二)-调度器创建之配置文件加载
配置文件源码解析博主的前一篇博文主要介绍了quartz的入门使用,现在博主就来讲解一下quartz配置文件的加载流程。代码回顾public class Main { public static void main(String[] args) throws SchedulerException { //创建一个jobDetail的实例,将该实例与HelloJob Class绑定 JobDetail jobDetail = JobBuilder.newJob(Te原创 2020-08-11 20:32:56 · 840 阅读 · 0 评论 -
quartz框架(一)-入门使用
什么是quartz?quartz是一个开源的任务调度框架,它可以帮助我们实现任务的定时调度,任务的持久化,支持故障切换和负载均衡。当然,它的优点远远不止这些。什么是任务调度框架?任务调度框架的核心功能就是它可以根据我们定义好的调度规则,在线程池中创建线程来执行我们的业务方法。那么一个完善的任务调度框架需要具备哪些功能呢?灵活的触发规则触发规则就是我的这个业务方法需要在什么时候开始执行,每隔多少时间执行,一共需要执行多少次。对于触发规则来说我们常见的是使用corn表达式,来进行任务触发规则的表达。原创 2020-08-08 18:12:15 · 417 阅读 · 1 评论