午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁技術文章
文章詳情頁

SpringBoot項目@Async方法問題解決方案

瀏覽:7日期:2023-05-23 13:57:03

現象:

1. 表面現象: 方法中輸出的日志, 日志文件中找不到, 也沒有任何報錯(即@Async標注的方法沒有執行, 也沒有報錯)

2. 分析現象: 日志中某個時刻之后沒有了task-xxx線程的日志

原因:

@Async異常方法默認使用Spring創建ThreadPoolTaskExecutor(參考TaskExecutionAutoConfiguration),

其中默認核心線程數為8, 默認最大隊列和默認最大線程數都是Integer.MAX_VALUE. 創建新線程的條件是隊列填滿時, 而這樣的配置隊列永遠不會填滿, 如果有@Async注解標注的方法長期占用線程(比如HTTP長連接等待獲取結果), 在核心8個線程數占用滿了之后, 新的調用就會進入隊列, 外部表現為沒有執行.

解決:

手動配置相應屬性即可. 比如

spring.task.execution.pool.queueCapacity=4spring.task.execution.pool.coreSize=20

備注:

此處沒有配置maxSize, 仍是默認的Integer.MAX_VALUE. 如果配置的話, 請考慮達到最大線程數時的處理策略(JUC包查找RejectedExecutionHandler的實現類)

(默認為拒絕執行AbortPolicy, 即拋出異常)

AbortPolicy: 直接拋出java.util.concurrent.RejectedExecutionException異常

CallerRunsPolicy: 主線程直接執行該任務,執行完之后嘗試添加下一個任務到線程池中,可以有效降低向線程池內添加任務的速度

DiscardOldestPolicy: 拋棄舊的任務

DiscardPolicy: 拋棄當前任務

截圖:

1. ThreadPoolTaskExecutor

SpringBoot項目@Async方法問題解決方案

2. SpringMonitor的配置屬性

SpringBoot項目@Async方法問題解決方案

3. SpringMonitor的Threads

SpringBoot項目@Async方法問題解決方案

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
主站蜘蛛池模板: 超碰在线cao | 久久精品久久精品 | 亚洲91视频 | 亚洲免费av在线 | 国产午夜免费 | 黄污网站在线观看 | 日韩不卡一区二区 | 欧美自拍偷拍第一页 | 亚洲小视频在线 | 男人的天堂欧美 | 亚洲 日本 欧美 中文幕 | 精品国产免费一区二区三区 | www久久| 色在线免费视频 | 国产一区二区三区精品在线观看 | 日韩黄视频 | 91大奶 | 亚洲1区 | 精品福利一区二区 | 亚洲成人动漫在线观看 | 国产粉嫩| 久久精品3| 国产精品13p | 日韩视频二区 | 九九热精品视频在线 | 手机在线毛片 | 欧美综合激情网 | 天天曰 | 成人网在线观看 | 精品一区二区国产 | 99久久精品无免国产免费 | 国产欧美又粗又猛又爽 | 日本国产精品视频 | 日韩在线视屏 | 性爱在线免费视频 | 在线观看视频亚洲 | 午夜影院免费 | 国产激情免费视频 | 国产成人精品网 | 成人在线免费视频 | 一级黄色淫片 |