Spring異步調(diào)用如何復(fù)制線程上下文信息?
? 點(diǎn)擊上方“JavaEdge”,關(guān)注公眾號

Spring 線程池


配置 spring 線程池?

?調(diào)用方和被調(diào)用方的方法不能在同一個 bean 類中。

何時需線程上下文拷貝

比如用戶認(rèn)證和 tracing 調(diào)用鏈相關(guān)信息都在請求線程上下文中,但是異步時就會丟失,所以需要一直攜帶。可實(shí)現(xiàn) spring 的如下接口
TaskDecorator


裝飾器的回調(diào)接口,該接口將應(yīng)用于將要執(zhí)行的任何Runnable 。請注意,這樣的裝飾器不一定適用于用戶提供的Runnable / Callable ,而是適用于實(shí)際的執(zhí)行回調(diào)(可能是用戶提供的任務(wù)的包裝)。
主要使用場景是圍繞任務(wù)的調(diào)用設(shè)置一些執(zhí)行上下文,或者為任務(wù)執(zhí)行提供一些監(jiān)視/統(tǒng)計(jì)信息。
自定義實(shí)現(xiàn)類實(shí)現(xiàn)其接口方法即可:
裝飾給定的Runnable ,返回可能包裝的Runnable以便實(shí)際執(zhí)行?
往期推薦

目前交流群已有?800+人,旨在促進(jìn)技術(shù)交流,可關(guān)注公眾號添加筆者微信邀請進(jìn)群
喜歡文章,點(diǎn)個“在看、點(diǎn)贊、分享”素質(zhì)三連支持一下~
評論
圖片
表情
