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