2012-01-18 5 views
1

Мне было интересно узнать, если кто-то использовал @Asynchronous в своих проектах Java EE?EJB 3.1 @Asynchronous really slow

Я сравнил вызов метода async в EJB с тем же кодом, но с помощью метода «sync». Async занимает 10 минут, тогда как метод «sync» занимает 23 секунды!

Метод async возвращает будущее.

Испытывали ли вы такое огромное узкое место в производительности?

ответ

0

Нет, никогда не испытывал. Мы используем тонны @Asynchronous методов, а время выполнения кода внутри такого метода равно синхронному вызову.

Одна вещь, о которой нужно знать, это то, что @Asynchronous работает в своей собственной транзакции, поэтому, возможно, вы каким-то образом затронуты этим. Это также означает, что контекст персистентности, если вы его используете, не будет распространяться на такой метод и в зависимости от того, насколько горячий ваш кеш l1 до загрузки, вы можете сделать , делая много дополнительных запросов к вашему внутреннему контенту ,

Кроме того, 10 минут измеряется с момента запуска вашего вызова до тех пор, пока будущее не вернет результат или из самого метода?

Смежные вопросы