我在本地线程上有一个会话信息对象,我想将它传递给异步作业,因此用户详细信息等将与用户启动异步作业的详细信息一起传递。 我想我已经发现了我需要覆盖的地方,以便以通用的方式添加此功能:扩展AnnotationAsyncExecutionInterceptor类,并从其父(AsyncExecutionInterceptor)覆盖“invoke”方法,以便可调用的调用方法将执行一些初始化具有原始会话信息的新线程本地端。
问题在于我正在寻找使用我的“AnnotationAsyncExecutionInterceptor”版本初始化AsyncAnnotationBeanPostProcessor的好方法。 我见过“ProxyAsyncConfiguration”初始化AsyncAnnotationBeanPostProcessor。我可以提供替代实施吗?
有没有简单的方法来实现我的原始目标?
答案 0 :(得分:0)
有一种方法可以重写AsyncConfigurer,该方法可以控制异常处理程序和执行程序,但是要进一步精细控制,它不允许您使用AnnotationAsyncExecutionInterceptor,如果我们可以动态返回执行程序限定符,则可以针对特定的运行时间序列化所有执行标识符。例如,tradeId处理到同一执行程序。此tradeId信息仅在运行时可用。