1.spring-mvc.xml配置中新增,具体添加位置如图显示
xmlns:mvc="http://www.springframework.org/schema/mvc"
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.2.xsd
2.spring-mvc.xml配置中新增
<!-- 定任务配置扫描位置 -->
<context:component-scan base-package="com.demoTask.*">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan>
3.spring-mvc.xml配置中新增,其中类JobRejectedExecutionHandler在下面展示
<!-- 定任务配置 -->
<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<property name="corePoolSize" value="5" />
<property name="maxPoolSize" value="50" />
<property name="queueCapacity" value="1000" />
<property name="keepAliveSeconds" value="60" />
<property name="rejectedExecutionHandler">
<bean class="com.demoTask.JobRejectedExecutionHandler" />
</property>
</bean>
package com.demoTask;
import java.util.concurrent.RejectedExecutionHandler;
import java.util.concurrent.ThreadPoolExecutor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class JobRejectedExecutionHandler implements RejectedExecutionHandler {
private static final Logger logger = LoggerFactory.getLogger(JobRejectedExecutionHandler.class);
@Override
public void rejectedExecution(Runnable runnable, ThreadPoolExecutor executor) {
logger.debug(runnable.toString() + " : has been rejected");
}
}
4.spring-mvc.xml配置中新增
<!-- 定时器 -->
<task:executor id="executor" pool-size="5" />
<task:scheduler id="scheduler" pool-size="20" />
<task:annotation-driven executor="executor" scheduler="scheduler" />
5.接下来可以写一个测试类测试定时任务是否可以执行
package com.demoTask;
import org.springframework.context.annotation.Lazy;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Lazy(false)
@Component("demoTask")
public class DemoTask {
private int i = 0;
@Scheduled(cron = "0 0/1 * * * ?")//一分钟执行一次
public void demo(){
i += 1;
System.out.println("订时任务触发" + i + "次");
}
}