在每个spring异步执行之前添加业务逻辑

问题描述 投票:1回答:1

我在本地线程上有一个会话信息对象,我想将其传递给异步作业,以便用户详细信息等随用户启动异步作业的详细信息一起传递。我想我已经发现了需要重写的地方,以便以通用方式添加此功能:扩展AnnotationAsyncExecutionInterceptor类,并从其父级(AsyncExecutionInterceptor)覆盖“ invoke”方法,以便可调用对象的call方法将在其上进行一些初始化具有原始会话信息的新线程本地端。

问题是,我正在寻找一种很好的方式来初始化带有我的“ AnnotationAsyncExecutionInterceptor”版本的AsyncAnnotationBeanPostProcessor。我已经看到了用于初始化AsyncAnnotationBeanPostProcessor的“ ProxyAsyncConfiguration”。我可以提供替代实施吗?

有没有简单的方法可以实现我的最初目标?

spring asynchronous spring-aop spring-annotations
1个回答
0
投票

有一种方法可以重写AsyncConfigurer,该方法可以控制异常处理程序和执行程序,但是要进一步进行精细控制,它不允许您使用AnnotationAsyncExecutionInterceptor,如果我们可以动态返回执行程序限定符,则可以针对特定的运行时标识符序列化所有执行。例如,tradeId处理到同一执行程序。此tradeId信息仅在运行时可用。

© www.soinside.com 2019 - 2024. All rights reserved.