fix(#2716) Support Spring MVC asynchronous requests #2821
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Describe what this PR does / why we need it
修复 springMvc 异步请求时计数 错误的问题 以及资源不释放等问题
Does this pull request fix one issue?
Describe how you did it
AsyncHandlerInterceptor
异步拦截器afterConcurrentHandlingStarted
中进行异步请求计数并存储到request
属性中,并调用ContextUtil.exit()
清理当前线程上下文afterCompletion
中进行扣减的时候 会进行计算扣减数 调用calculateDeductionCount
方法,获取request
中的异步请求数与默认扣减数计算asyncRequestCount == null ? -1 : -1 - asyncRequestCount
Describe how to verify it
调用 demo 中
WebMvcTestController
新增的测试请求/async
/nestedAsync
/async2Sync
/async2Sync2Async
/sync ``/sync2Async
/sync2Exception
/async2Exception
/exception
Special notes for reviews