今天就谈一谈我前两天自学的quartz定时任务吧,我对quartz定时任务的理解,就是可以设定一个时间,然后呢,在这个时间到的时候,去执行业务逻辑,这是我的简单理解,接下来看代码是如何实现的,首先有两种实现的方式,一种是通过代码实现,另一种是通过配置文件实现,我建议使用配置文件配置的方式实现定时任务,毕竟以后有什么变化,只需要改配置文件就可以了,不需要改代码,重新编译,重新部署。
先来讲一下第一种纯代码实现的定时任务。
第一步需要先下载所必须的jar包,我使用的jar包是:
第二步,写一个类实现Job接口,里面只有一个方法execute,在这个方法里写上自己的业务逻辑即可,时间到的时候就会执行这里的业务逻辑。
第三步,写一个定时任务管理类QuartzManager.java,在这个类里有增加定时任务的方法,由于触发器有两种,第一种的simpleTrigger简单触发器,第二种是cronTrigger,可以定义很复杂的时间,所以有两种增加定时任务的方法。
第一种方法使用simpleTrigger简单触发器
上面代码的注释写的很清楚,着重介绍一下jobDataMap,这个map是用于传递参数的,可以将这里设的值,在任务里获取到,以便不时之需。
第二种方法是使用cronTrigger触发器
这个方法和第一种方法的区别就是触发器的不同,导致设置时间的方式不同而已,但是为了应付现实中比较复杂的场景,建议使用第二种触发器。
第四步,写一个main方法用于测试
着重介绍一下第二种触发器的时间设置规则,上面的0/5 * * ? * * *的意思是每隔5秒执行一次任务,接下来会列出一些常用的时间
接下来讲一下使用配置文件实现的定时任务。
第一步需要先下载所必须的jar包,我使用的jar包是:
第二步,写一个类实现Job接口,里面只有一个方法execute,在这个方法里写上自己的业务逻辑即可,时间到的时候就会执行这里的业务逻辑。
第三步,是需要log4j的配置文件,quartz的配置文件和quartz_jobs.xml
接下来是quartz_jobs.xml,这个文件的位置有些要求,看目录结构
这个文件里面的具体内容就是配置job,配置trigger
在这个配置文件里,我定义了两个任务,一个任务使用的simpleTrigger,另一个使用的是cronTrigger
第四步,写一个测试类,测试定时任务,在这个类里只需要从调度工厂里获取调度,然后开启调度即可。
上述两种实现定时任务的方式就实现了,不过本人强烈建议使用配置的方式实现定时任务,好处就不再多说了。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。