spring @Async: помечает только кандидата на асинхронное выполнение, не гарантируется?

#java #spring #asynchronous

#java #весна #асинхронный

Вопрос:

@Async javadoc заявляет, что он помечает только кандидата на asynchronous execution ,

  1. Означает ли это, что асинхронное выполнение не гарантируется?
  2. В частности, что произойдет с транзакцией в режиме гибернации, если кандидат ( postProcessor#process ), который был отмечен для асинхронного выполнения, но не выполнялся асинхронно и вызвал исключение
 Service{
 @Transactional
 public void save(Entity entity){
  repository.save(entity);
  asyncPostProcessor.process(entity); //threw Exception
 }
}

AsyncPostProcessor{
  @Async
  void process(Entity entity){
   throw new IllegalArgumentException();
  }
}
  

A

Комментарии:

1. Означает ли это, что асинхронное выполнение не гарантируется? Если у вас не хватит возможности создавать дополнительные потоки, то, я думаю, это не будет действительно асинхронным?