2023年7月21日发(作者:)
springboot定时任务(线程配置,并⾏【同步】、异步等)1. 定时任务实现⽅式:SpringBoot⾃带的Scheduled,可以将它看成⼀个轻量级的Quartz,⽽且使⽤起来⽐Quartz简单许多,本⽂主要介绍。执⾏⽅式:单线程(串⾏)多线程(并⾏)2. 创建定时任务@Component@EnableSchedulingpublic class ScheduledTest{@Scheduled(cron="0/5 * * * * ?")
public void executeFileDownLoadTask() {// 间隔2分钟,执⾏任务
Thread current = tThread();
n("定时任务1:"+());}}备注:@EnableScheduling :⽤于发现注解@Scheduled的任务并后台执⾏;@Scheduled(cron="0 0/2 * * * ?") :⽤于标注这个⽅法是⼀个定时任务的⽅法,有多种配置可选。cron⽀持cron表达式,指定任务在特定时间执⾏;fixedRate以特定频率执⾏任务;fixedRateString以string的形式配置执⾏频率。3. 并⾏任务和异步任务的配置@Configuration@EnableSchedulingpublic class ScheduleConfig implements SchedulingConfigurer, AsyncConfigurer{/** 并⾏任务*/public void configureTasks(ScheduledTaskRegistrar taskRegistrar){TaskScheduler taskScheduler = taskScheduler();kScheduler(taskScheduler);}/*** 并⾏任务使⽤策略:多线程处理(配置线程数等)*
* @return ThreadPoolTaskScheduler 线程池*/@Bean(destroyMethod = "shutdown")public ThreadPoolTaskScheduler taskScheduler(){ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();lSize(20);eadNamePrefix("task-"); //设置线程名开头itTerminationSeconds(60);tForTasksToCompleteOnShutdown(true);return scheduler;}/** 异步任务*/public Executor getAsyncExecutor(){Executor executor = taskScheduler();return executor;}/** 异步任务 异常处理*/public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler(){return new SimpleAsyncUncaughtExceptionHandler();}}备注:SchedulingConfigurer: 将线程池注⼊TaskScheduler,并与ScheduledTaskRegistrar 关联;AsyncConfigurer:⽤于异步处理4. 启动@SpringBootApplicationpublic class Application
{public static void main(String[] args){(, args);}}
发布者:admin,转转请注明出处:http://www.yc00.com/news/1689931088a295275.html
评论列表(0条)