首先在配置文件头部的必须要有:.
其次xsi:schemaLocation必须为其添加:
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task.xsd
然后spring扫描过程必须涵盖定时任务类所在的目录:
设置动作启用定时任务及定时器线程池大小:
class类
/**
* taskCrm
*/
@Component("taskCrm")
public class TaskCrm {
public void autoEvaluate() throws Exception {
System.out.println("Test is working......");
}
}
@Component
@Lazy(value=false)
public class MyQuartzs {
@Scheduled(cron = "*/5 * * * * ?")//每隔5秒执行一次
public void test() throws Exception {
System.out.println("Test is working......");
}
}
说明:
任务调度器的配置详细参数说明:
task:scheduler/@pool-size:调度线程池的大小,调度线程在被调度任务完成前不会空闲
task:scheduled/@cron:cron表达式,注意,若上次任务未完成,即使到了下一次调度时间,任务也不会重复调度
任务执行器配置详细参数说明:
task:executor/@pool-size:可以指定执行线程池的初始大小、最大大小
task:executor/@queue-capacity:等待执行的任务队列的容量
task:executor/@rejection-policy:当等待队列爆了时的策略,分为丢弃、由任务执行器直接运行等方式
Spring TaskExecutor与TaskScheduler
Spring Scheduler 与 Quartz 进阶