java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > spring boot定时任务

老生常谈spring boot中的定时任务

作者:Hanyta

SpringBoot中的定时任务主要通过@Scheduled注解以及SchedulingConfigurer接口实现,本文给大家介绍spring boot中的定时任务,感兴趣的朋友跟随小编一起看看吧
//在你需要定时的方法上加上@Scheduled注解,并用corn表达式指定如何定时,下式表达了每隔15秒执行一次方法
@Scheduled(cron = "*/15 * * * * ?")
public void hello() {
    System.out.println("hello执行了");
}
@Configuration  
@EnableScheduling  
public class CustomSchedulingConfig implements SchedulingConfigurer {
	@Override  
	public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
		// 定时任务逻辑
	}
}
@Bean(destroyMethod = "shutdown")  
public ThreadPoolTaskScheduler threadPoolTaskScheduler() {  
    ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();  
    scheduler.setPoolSize(5); // 设置线程池大小  
    scheduler.setThreadNamePrefix("scheduled-task-"); // 设置线程名称前缀  
    scheduler.setAwaitTerminationSeconds(60); // 设置终止等待时间  
	// 设置处理拒绝执行的任务异常
	scheduler.setRejectedExecutionHandler((r, executor) -> log.error("Task rejected", r));
	// 处理定时任务执行过程中抛出的未捕获异常
	scheduler.setErrorHandler(e -> log.error("Error in scheduled task", e));
    return scheduler;  
}
//然后将自定义的ThreadPoolTaskScheduler设置到ScheduledTaskRegistrar中去:
@Override  
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
	// 定时任务逻辑
	taskRegistrar.setTaskScheduler(threadPoolTaskScheduler());
}
//通过SchedulingConfigurer接口,可以更灵活地配置任务调度器和定时任务的执行规则,比如动态注册定时任务、动态修改任务执行规则等。

到此这篇关于spring boot中的定时任务的文章就介绍到这了,更多相关spring boot定时任务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文