1.添加maven依赖:
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.1</version>
</dependency>
2.开启task注解:
<!-- task任务扫描注解 -->
<task:annotation-driven/>
3.配置业务对象(需要执行的定时任务对象)
<bean id="xxxxxTask" class="com.xxx.service.task.TestTask"/>
4.调度配置的业务对象
<bean id="xxxxJobDetail"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 要调用的对象 -->
<property name="targetObject" ref="xxxPushTask"/>
<!-- 要执行的方法名称 -->
<property name="targetMethod" value="doSomeThing"/>
<!-- 如果前一个任务还没有结束第二个任务不会启动 false -->
<property name="concurrent" value="false"/>
</bean>
5.配置调度触发器
<bean id="xxxTaskTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="xxxJobDetail"/>
<!-- 定时任务的时间表达式 -->
<property name="cronExpression" value="0 */1 * * * ?"/>
</bean>
6.配置调度工厂
<bean id="startQuartz" lazy-init="false" autowire="no"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="xxxTaskTrigger"/>
</list>
</property>
</bean>
7.配置执行器
<!-- 线程执行器配置,用于任务注册 -->
<bean id="executor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<property name="corePoolSize" value="10"/>
<property name="maxPoolSize" value="100"/>
<property name="queueCapacity" value="500"/>
<property name="threadNamePrefix" value="xxx-task-thread-"/>
</bean>
配置完成