【工具】Schedule线程池配置

内容概要

本文旨在为spring boot 相关工作人员,快速进行开发而做的笔记备份。

环境包

	jdk: jdk1.8.0_121(32位)
	pom: Spring架构 默认配置

基础配置

@Configuration   //继承 SchedulingConfigurer 
public class ScheduleConfig implements SchedulingConfigurer{

	@Override //实现配置方法   设置连接池  不设置则使用默认单线程计划
    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {		
    	//将我们自定义的线程池 配置给 Schedule
        taskRegistrar.setScheduler(taskExecutor());
    }
    //@Bean方法 用于系统依赖创建 所需要的连接池
    //【注】系统关闭线程池 使用需要调用shutDown 类比 数据库连接池也需要调用 close方法。
    //原因 线程池 在系统关闭JVM线程后 不会自动关闭 用户线程,线程池创建的是用户线程。
    //既 系统关闭 已创建的线程 即使已执行完程序,也不会释放资源
    @Bean(destroyMethod="shutdown") 
    public Executor taskExecutor() {
    	//创建自定义线程池
    	//可以根据项目需要 具体设置
        return Executors.newScheduledThreadPool(10);
    }

}

任务安排

@Component //注解加入
public class myTask {
	private Logger logger = LoggerFactory.getLogger(myTask.class);
	//@Scheduled: 注解告诉 Spring 此方法为 Scheduled 方法 
	//cron :设置cron表达式 实现定时计划  可如例: 与EL表达式联合使用
	@Scheduled(cron = "${test.task.cron}") 
	public void testTask(){
		logger.info("计划任务测试");
	}
}

定时触发器

在 application里配置
具体cron 写法 请自行 搜索,暂时未做总结
在这里插入图片描述


版权声明:本文为Shane_FZ_C原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。