@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"/>

Вы можете мне помочь? Некоторые предложения?
У меня нет идей.

0 ответов

Другие вопросы по тегам