我的代码执行异步时遇到问题。 方法 startConversion()应该被称为异步。呼叫转移AOP代理。
分离的一切工作正常。当我整理@Async和@MonitoredWithSpring注释时出现问题
javamelody在第一个xml中的webxml中定义 - 确定
Spring异步支持在xml中是不确定的 - 确定
代码在没有@MonitoredWithSpring的情况下运行良好。 但我需要监控这个bean。
示例代码:
@MonitoredWithSpring //L1 - if this line removed @async will work
public interface IOfficeConversionService {
void startConversion ();
}
实施班级
@Service
public class COfficeConversionSevice implements IOfficeConversionService {
@Override
@Transactional
@Async ("officeFileConversionExecutor")
public void startConversion () {
//ASYNC work
}
}
- 如果L1存在,代码将调用方法startConversion() synchronusly 。
- 没有L1,一切正常,方法startConversion()在新线程中被称为异步
在stacktrace中甚至不创建异步切入点。 @Async注释永远不会被其postProcessor处理。 @Transactional工作,并创建交易。初始化没有错误
Spring配置
<context:annotation-config />
<aop:aspectj-autoproxy />
<task:executor id="mailexecutor" pool-size="25-100" queue-capacity="1000" rejection-policy="ABORT" />
<task:executor id="pnpexecutor" pool-size="5" />
<task:executor id="officeFileConversionExecutor" pool-size="5" />
<task:scheduler id="systemScheduler" pool-size="5" />
<task:annotation-driven executor="mailexecutor" scheduler="systemScheduler"/>
你能帮帮我吗?一些建议?