#yyds干货盘点# springboot配置@Async异步任务的线程池
Posted 灰太狼_cxh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#yyds干货盘点# springboot配置@Async异步任务的线程池相关的知识,希望对你有一定的参考价值。
springboot配置@Async异步任务的线程池
1.代码实现
在#yyds干货盘点# springboot使用@Async实现异步调用基础代码上进行修改
yml配置
spring:
task:
execution:
pool:
core-size: 2
max-size: 8
queue-capacity: 18
keep-alive: 60s
allow-core-thread-timeout: true
thread-name-prefix: task-
具体配置含义如下:
- spring.task.execution.pool.core-size:线程池创建时的初始化线程数,默认为8
- spring.task.execution.pool.max-size:线程池的最大线程数,默认为int最大值
- spring.task.execution.pool.queue-capacity:用来缓冲执行任务的队列,默认为int最大值
- spring.task.execution.pool.keep-alive:线程终止前允许保持空闲的时间
- spring.task.execution.pool.allow-core-thread-timeout:是否允许核心线程超时
- spring.task.execution.shutdown.await-termination:是否等待剩余任务完成后才关闭应用
- spring.task.execution.shutdown.await-termination-period:等待剩余任务完成的最大时间
- spring.task.execution.thread-name-prefix:线程名的前缀,设置好了之后可以方便我们在日志中查看处理任务所在的线程池
2.实现效果:
因为设置了2个核心线程,所以每次只运行2个任务。在实际使用上可以根据需求调节核心线程数量。
2021-12-29 16:49:58.921 INFO 13716 --- [ main] c.c.a.AsyncTaskApplicationTests : Started AsyncTaskApplicationTests in 1.642 seconds (JVM running for 3.272)
2021-12-29 16:49:59.232 INFO 13716 --- [ cxh-1] com.cxh.async_task.task.AsyncTasks : 开始做任务一
2021-12-29 16:49:59.232 INFO 13716 --- [ cxh-2] com.cxh.async_task.task.AsyncTasks : 开始做任务二
2021-12-29 16:50:00.935 INFO 13716 --- [ cxh-1] com.cxh.async_task.task.AsyncTasks : 完成任务一,耗时:1703毫秒
2021-12-29 16:50:00.937 INFO 13716 --- [ cxh-1] com.cxh.async_task.task.AsyncTasks : 开始做任务三
2021-12-29 16:50:04.233 INFO 13716 --- [ cxh-2] com.cxh.async_task.task.AsyncTasks : 完成任务二,耗时:5001毫秒
2021-12-29 16:50:05.240 INFO 13716 --- [ cxh-1] com.cxh.async_task.task.AsyncTasks : 完成任务三,耗时:4302毫秒
2021-12-29 16:50:05.241 INFO 13716 --- [ main] c.c.a.AsyncTaskApplicationTests : 任务全部完成,总耗时:6078毫秒
以上是关于#yyds干货盘点# springboot配置@Async异步任务的线程池的主要内容,如果未能解决你的问题,请参考以下文章
#yyds干货盘点#jackson学习之九:springboot整合(配置文件)
SpringBoot | 3.1 配置数据源及JDBC #yyds干货盘点#