springboot多线程并发执行任务
更新时间:2026年03月25日 08:18:59 作者:南山love
本文主要介绍了springboot多线程并发执行任务,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
1.config文件
package com.cooker.lottery_system.common.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.util.concurrent.ThreadPoolExecutor;
@Configuration
@EnableAsync
public class ExecutorConfig {
@Value("${async.executor.thread.core_pool_size}")
private int corePoolSize;
@Value("${async.executor.thread.max_pool_size}")
private int maxPoolSize;
@Value("${async.executor.thread.queue_capacity}")
private int queueCapacity;
@Value("${async.executor.thread.name.prefix}")
private String namePrefix;
@Bean(name = "asyncServiceExecutor")
public ThreadPoolTaskExecutor asyncServiceExecutor(){
ThreadPoolTaskExecutor threadPoolTaskExecutor = new
ThreadPoolTaskExecutor();
threadPoolTaskExecutor.setCorePoolSize(corePoolSize);
threadPoolTaskExecutor.setMaxPoolSize(maxPoolSize);
threadPoolTaskExecutor.setQueueCapacity(queueCapacity);
threadPoolTaskExecutor.setKeepAliveSeconds(3);
threadPoolTaskExecutor.setThreadNamePrefix(namePrefix);
// rejection-policy:当pool已经达到max size的时候,如何处理新任务
// CALLER_RUNS:不在新线程中执⾏任务,⽽是由调⽤者所在的线程来执⾏
threadPoolTaskExecutor.setRejectedExecutionHandler(new
ThreadPoolExecutor.AbortPolicy());
//加载
threadPoolTaskExecutor.initialize();
return threadPoolTaskExecutor;
}
}2、application.properties
## 线程池 ## async.executor.thread.core_pool_size=10 async.executor.thread.max_pool_size=20 async.executor.thread.queue_capacity=20 async.executor.thread.name.prefix=async-service-
3、对象注入
@Autowired
private ThreadPoolTaskExecutor threadPoolTaskExecutor;4、并行执行
// 短信通知
threadPoolTaskExecutor.execute(()->sendMessage(winningRecordDOList));
// 邮件通知
threadPoolTaskExecutor.execute(()->sendMail(winningRecordDOList));到此这篇关于springboot多线程并发执行任务的文章就介绍到这了,更多相关springboot多线程并发执行内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
相关文章
SpringBoot如何使用RateLimiter通过AOP方式进行限流
这篇文章主要介绍了SpringBoot如何使用RateLimiter通过AOP方式进行限流,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-06-06
spring boot配置MySQL数据库连接、Hikari连接池和Mybatis的简单配置方法
这篇文章主要介绍了spring boot配置MySQL数据库连接、Hikari连接池和Mybatis的简单配置方法,需要的朋友可以参考下2018-03-03


最新评论