testQuartz.javajava
package com.common.quartz; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 定时任务类 * * @auther * @date */ @Component("testQuartz") public class testQuartz { private static final Logger log = LoggerFactory.getLogger(testQuartz.class); /** * 具体执行的方法 * * @auther * @date */ public void method() { log.info("start"); try { log.info("成功"); } } catch (Exception e) { log.error("失败:" + e.getMessage()); } log.info("end"); } }
quartz.xmlspring
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 扫描定时器的包,有注解的都会被初始化为定时器服务类 --> <context:component-scan base-package="com.common.scheduler" /> <!--禁止相同的任务并发--> <!-- <property name="concurrent" value="true" /> --> <!-- 定时器执行工厂 ,分别指定服务类jobDetails和触发器triggers --> <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="testTrigger"/> </list> </property> </bean> <bean id="testDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject" ref="testQuartz" /> <property name="targetMethod" value="method" /> </bean> <bean id="testTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> <property name="jobDetail" ref="testDetail" /> <property name="cronExpression" value="0 0/1 * * * ?" /> <!-- cron表达式:设置启动时间 --> </bean> </beans>
ApplicationContext.xml (spring配置文件)并发
<import resource="quartz/quartz.xml"/>
cron表达式在线生成器:http://cron.qqe2.com/component