@Async с JavaMelody @MonitoredWithSpring не работает
У меня проблема с асинхронным выполнением моего кода. Метод startConversion() должен вызываться асинхронно. Звонок идет по AOP прокси.
Все разделено работает отлично. Проблема возникает, когда я собираю аннотации @Async и @MonitoredWithSpring
javamelody определяется в webxml в первом xml - ОК
Весенняя асинхронная поддержка является обязательной в XML - ОК
Код работает хорошо без @MonitoredWithSpring. Но мне нужно, чтобы этот боб отслеживался.
Образец кода:
@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() синхронно.
- Без L1 все работает нормально, а метод startConversion() вызывается асинхронно в новом потоке
В stacktrace даже не создайте асинхронный pointcut. Аннотация @Async никогда не обрабатывается его постпроцессором. @Transactional работает, и транзакция создана. Нет ошибок при инициализации
Конфигурация пружины
<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"/>
Вы можете мне помочь? Некоторые предложения?
У меня нет идей.