【#yyds干货盘点# springboot配置@Async异步任务的线程池】智慧并不产生于学历,而是来自对于知识的终生不懈的追求。这篇文章主要讲述#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个任务。在实际使用上可以根据需求调节核心线程数量。
2021-12-29 16:49:58.921INFO 13716 --- [main] c.c.a.AsyncTaskApplicationTests: Started AsyncTaskApplicationTests in 1.642 seconds (JVM running for 3.272)
2021-12-29 16:49:59.232INFO 13716 --- [cxh-1] com.cxh.async_task.task.AsyncTasks: 开始做任务一
2021-12-29 16:49:59.232INFO 13716 --- [cxh-2] com.cxh.async_task.task.AsyncTasks: 开始做任务二
2021-12-29 16:50:00.935INFO 13716 --- [cxh-1] com.cxh.async_task.task.AsyncTasks: 完成任务一,耗时:1703毫秒
2021-12-29 16:50:00.937INFO 13716 --- [cxh-1] com.cxh.async_task.task.AsyncTasks: 开始做任务三
2021-12-29 16:50:04.233INFO 13716 --- [cxh-2] com.cxh.async_task.task.AsyncTasks: 完成任务二,耗时:5001毫秒
2021-12-29 16:50:05.240INFO 13716 --- [cxh-1] com.cxh.async_task.task.AsyncTasks: 完成任务三,耗时:4302毫秒
2021-12-29 16:50:05.241INFO 13716 --- [main] c.c.a.AsyncTaskApplicationTests: 任务全部完成,总耗时:6078毫秒
推荐阅读
- Spring认证中国教育管理中心-Apache Solr 的 Spring 数据教程一
- 文件解压缩及文件打包
- 实验(LAMP安装论坛)
- k8s故障排查指南
- 微灯手握寸笔,细谈内存管理
- 源码编译构建LAMP
- C# 设置或验证 PDF中的文本域格式
- Apache配置与应用
- 通过Intune控制windows后台应用---Intune终结点管理(11)