刷赞网站推广空间免费,wordpress timer,怎么做视频网站赚钱吗,的推网站模板Spring整合Quartz定时任务详解
Spring quartz定时任务官方网站
一、概述
用Spring#xff0c;就是为了简单。
但是我还是要总结下java定时任务实现的几种方式。 1.TimerTask#xff0c;等于一个线程隔一段时间运行一下。 2.ScheduledExecutorService#xff0c;线程池版…Spring整合Quartz定时任务详解
Spring quartz定时任务官方网站
一、概述
用Spring就是为了简单。
但是我还是要总结下java定时任务实现的几种方式。 1.TimerTask等于一个线程隔一段时间运行一下。 2.ScheduledExecutorService线程池版的TimerTask。 3.Spring支持的定时任务Schedule注解支持crontab表达式。 4.quartz比较流行的任务调度工具就是配置起来麻烦。
上一篇讲了《Spring整合Schedule定时任务详解 》本篇讲述如何整合Quartz做定时任务。
项目地址 品茗IT-同步发布
品茗IT 提供在线支持
一键快速构建Spring项目工具
一键快速构建SpringBoot项目工具
一键快速构建SpringCloud项目工具
一站式Springboot项目生成
Mysql一键生成Mybatis注解Mapper
如果大家正在寻找一个java的学习环境或者在开发中遇到困难可以加入我们的java学习圈点击即可加入共同学习节约学习时间减少很多在学习中遇到的难题。
二、Maven依赖
?xml version1.0?
projectxsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdxmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancemodelVersion4.0.0/modelVersionparentgroupIdcn.pomit/groupIdartifactIdSpringWork/artifactIdversion0.0.1-SNAPSHOT/version/parentartifactIdQuartz/artifactIdpackagingjar/packagingnameQuartz/nameurlhttp://maven.apache.org/urldependenciesdependencygroupIdorg.springframework/groupIdartifactIdspring-core/artifactId/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-tx/artifactId/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-context-support/artifactId/dependencydependencygroupIdorg.quartz-scheduler/groupIdartifactIdquartz/artifactIdversion2.3.0/version/dependency/dependencies
/project
父模块可以在https://www.pomit.cn/spring/SpringWork/pom.xml中获取。
quartz主要用到spring-tx、spring-context-support和quartz。
三、环境配置
本文假设你已经引入Spring必备的一切了已经是个Spring项目了,如果不会搭建可以打开这篇文章看一看《Spring和Spring Mvc 5整合详解》。
为方便使用我们一般把定时任务的crontab表达式提出去。
所以我们可以配置一个Spring的配置文件spring-quartz.xml,然后在Spring的主配置文件中用import resourceclasspath*:spring-quartz.xml/引入即可这样模块的耦合性就没那么强。
spring-quartz.xml:
?xml version1.0 encodingUTF-8?
beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xmlns:contexthttp://www.springframework.org/schema/contextxmlns:phttp://www.springframework.org/schema/p xsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsdcontext:annotation-config /context:component-scan base-packagecn.pomit.springwork/context:component-scanbean idannotationPropertyConfigurerScheduleclassorg.springframework.beans.factory.config.PropertyPlaceholderConfigurerproperty nameorder value1 /property nameignoreUnresolvablePlaceholders valuetrue /property namelocationslistvalueclasspath:quartz.properties/value/list/property/beanbean idjobDetailTest classorg.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean property nametargetObject ref beanscheduleService / /property property nametargetMethod valuedoJob/value /property /bean bean idcronTriggerTest classorg.springframework.scheduling.quartz.CronTriggerFactoryBean property namejobDetail ref beanjobDetailTest / /property property namecronExpression value${schedule.task.test}/value /property /bean !-- 总配置 -- bean classorg.springframework.scheduling.quartz.SchedulerFactoryBean !-- 添加触发器 -- property nametriggers list ref beancronTriggerTest / /list /property /bean
/beans这里配置了三个和quartz相关的beanquartz配置这点很烦人一个定时任务要配置一个jobDetail、一个Trigger然后把Trigger加入到SchedulerFactoryBean中所以这里如果要再添加一个定时任务就需要再写一个jobDetail和一个Trigger。
jobDetail指明了定时任务的业务逻辑怎么调用。
Trigger决定定时任务怎么触发要么是CronTrigger或者是其他很多的这里不一一说明了CronTrigger已经可以解决一切问题了。
SchedulerFactoryBean: 汇总所有Trigger管理调度。
quartz.properties
schedule.task.test0/2 * * * * ?四、业务逻辑
ScheduleService
package cn.pomit.springwork.quartz.service;import org.springframework.stereotype.Service;Service
public class ScheduleService {public void doJob() {System.out.println(test);}}
快速构建项目
Spring组件化构建
SpringBoot组件化构建
SpringCloud服务化构建
喜欢这篇文章么喜欢就加入我们一起讨论SpringBoot技术吧