怀安网站建设,临淄区住房和城乡建设局网站,邢台做网站推广价格,建设公司网站大概需要多少钱文章目录1. 必不可少jar包依赖2. 编写任务调度类013. 编写任务调度类024. quartz配置文件5. 测试service6. 效果图开发环境版本jdk1.8Maven3.6.1springSpring 4.2.6.RELEASEIdea2019
1. 必不可少jar包依赖 dependencygroupIdorg.springframework/groupIddependencygroupIdorg.springframework/groupIdartifactIdspring-context-support/artifactIdversion4.2.6.RELEASE/version/dependencydependencygroupIdorg.quartz-scheduler/groupIdartifactIdquartz/artifactIdversion2.3.2/version/dependency2. 编写任务调度类01
package com.gblfy.order.controller;package com.gblfy.order.controller;import com.gblfy.order.service.impl.QuartzService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;/*** 基于Spring整合Quartz进行完成定时任务*/
Component
public class FirstCron {Autowiredprivate QuartzService quartzService;private static final Logger logger LoggerFactory.getLogger(FirstCron.class);protected void executeJob() {quartzService.test();logger.info(定时任务1进行中.......);}
}
3. 编写任务调度类02
package com.gblfy.order.controller;import com.gblfy.order.service.impl.QuartzService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;/*** 基于Spring整合Quartz进行完成定时任务*/
Component
public class SecondCron {Autowiredprivate QuartzService quartzService;private static final Logger logger LoggerFactory.getLogger(SecondCron.class);protected void executeJob() {quartzService.test2();logger.info(定时任务2进行中.......);}
}4. quartz配置文件
在spring配置文件中配置作业类MethodInvokingJobDetailFactoryBean、作业调度的触发方式触发器、调度工厂 applicationContext-quartz.xml
?xml version1.0 encodingUTF-8?
beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdbean namefirstCron classorg.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBeanproperty nametargetObjectbean classcom.gblfy.order.controller.FirstCron//propertyproperty nametargetMethod valueexecuteJob/!--作业不并发调度--property nameconcurrent valuefalse//beanbean namesecondCron classorg.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBeanproperty nametargetObjectbean classcom.gblfy.order.controller.SecondCron//propertyproperty nametargetMethod valueexecuteJob/!--作业不并发调度--property nameconcurrent valuefalse//bean!--按照一定频率的触发器--!--bean idsimpleTrigger classorg.springframework.scheduling.quartz.SimpleTriggerFactoryBeanproperty namejobDetail refthirdCron/property namestartDelay value0/property namerepeatInterval value2000/
/bean--!--Cron表达式触发器--bean idfirstCronTrigger classorg.springframework.scheduling.quartz.CronTriggerFactoryBeanproperty namejobDetail reffirstCron/property namecronExpression value0/2 * * * * ?//bean!--Cron表达式触发器--bean idsecondCronTrigger classorg.springframework.scheduling.quartz.CronTriggerFactoryBeanproperty namejobDetail refsecondCron/property namecronExpression value0/5 * * * * ?//bean!--配置调度工厂--bean classorg.springframework.scheduling.quartz.SchedulerFactoryBeanproperty nametriggerslist!--ref beansimpleTrigger/--ref beanfirstCronTrigger/ref beansecondCronTrigger//list/property/bean
/beans
注意MethodInvokingJobDetailFactoryBean有两个关键属性
targetObject指定任务类.
targetMethod指定运行的方法.
5. 测试service
package com.gblfy.order.service.impl;import com.gblfy.order.controller.FirstCron;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;Service
public class QuartzService {private static final Logger logger LoggerFactory.getLogger(FirstCron.class);public void test() {logger.info(执行定时任务1 业务逻辑.......);}public void test2() {logger.info(执行定时任务2 业务逻辑.......);}
}
6. 效果图