Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
15.02.2019, 13:06
|
|||
---|---|---|---|
Spring @Async не работает когда соответствует требованиям |
|||
#18+
Всем привет! Есть Spring boot проект, в котором есть метод, который отлично (асинхронно) работает в таком виде. Код: java 1. 2. 3. 4.
Но возвращаемый тип не соответствует правилам асинхронного сервиса. The method’s return type is CompletableFuture<User> instead of User, a requirement for any asynchronous service. Переделываю так, чтоб соответствовал. Код: java 1. 2. 3. 4. 5.
И асинхронность пропадает, почему, что я не понял? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.02.2019, 13:09
|
|||
---|---|---|---|
Spring @Async не работает когда соответствует требованиям |
|||
#18+
Imperous, непонятно, как вы поняли, что в первом случае метод работает как асинхронный? Откуда происходит вызов createAsync? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.02.2019, 13:27
|
|||
---|---|---|---|
Spring @Async не работает когда соответствует требованиям |
|||
#18+
Озвериннепонятно, как вы поняли, что в первом случае метод работает как асинхронный? +1, и непонятно как Вы поняли что во втором случае метод не работает как асинхронный? Второй случай правильный, Вы получаете не результат выполнения, а Future, который позволит получить результат после того как он будет получен. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.02.2019, 13:31
|
|||
---|---|---|---|
Spring @Async не работает когда соответствует требованиям |
|||
#18+
KachalovОзвериннепонятно, как вы поняли, что в первом случае метод работает как асинхронный? +1, и непонятно как Вы поняли что во втором случае метод не работает как асинхронный? Второй случай правильный, Вы получаете не результат выполнения, а Future, который позволит получить результат после того как он будет получен. он может быть не до конца правильный, если вызов происходит из того же класса, тогда аннотация будет игнорирована и и методпревратится в обычный синхроннный, которые выполняет операцию и оборачивает ее во future. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.02.2019, 15:36
|
|||
---|---|---|---|
Spring @Async не работает когда соответствует требованиям |
|||
#18+
ОзверинImperous, непонятно, как вы поняли, что в первом случае метод работает как асинхронный? Когда проверял, то в метод createAsync вставил Thread.sleep(1000) - с ощутимой задержкой Путем запуска списка с 20-ю юзерами и смотря в логи - было видно что залетало и вылетало не последовательно и быстро. Кстати да, на самом деле возвращаемый юзер в данном случае не нужен, т.е. можно было сделать метод void. ОзверинОткуда происходит вызов createAsync? Вызов происходит из контроллера (другого класса) . Во втором случае я наблюдал как последовательно обрабатывается каждый юзер через секунду. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.02.2019, 15:47
|
|||
---|---|---|---|
Spring @Async не работает когда соответствует требованиям |
|||
#18+
Imperous, дальше идет область гадания по картам таро...можно воспроизвести случай в минимальном окружении и выложить на гитхаб проект. Так будет проще для всех. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.02.2019, 16:42
|
|||
---|---|---|---|
Spring @Async не работает когда соответствует требованиям |
|||
#18+
ОзверинImperous, дальше идет область гадания по картам таро...можно воспроизвести случай в минимальном окружении и выложить на гитхаб проект. Так будет проще для всех. Всем спасибо. Пока выковыривал код. Понял как оно работает и все встало на свои места. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=59&mobile=1&tid=2121476]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 324ms |
total: | 464ms |
0 / 0 |