powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring @Async не работает когда соответствует требованиям
7 сообщений из 7, страница 1 из 1
Spring @Async не работает когда соответствует требованиям
    #39774417
Imperous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Есть Spring boot проект, в котором есть метод, который отлично (асинхронно) работает в таком виде.
Код: java
1.
2.
3.
4.
@Async
    public User createAsync(User user)  {
        return repository.save(user);
    } 



Но возвращаемый тип не соответствует правилам асинхронного сервиса.
The method’s return type is CompletableFuture<User> instead of User, a requirement for any asynchronous service.

Переделываю так, чтоб соответствовал.
Код: java
1.
2.
3.
4.
5.
@Async
    public CompletableFuture<User> createAsync(User user)  {
        User result = repository.save(user);
        return CompletableFuture.completedFuture(result);
    } 


И асинхронность пропадает, почему, что я не понял?
...
Рейтинг: 0 / 0
Spring @Async не работает когда соответствует требованиям
    #39774424
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Imperous, непонятно, как вы поняли, что в первом случае метод работает как асинхронный?


Откуда происходит вызов createAsync?
...
Рейтинг: 0 / 0
Spring @Async не работает когда соответствует требованиям
    #39774450
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озвериннепонятно, как вы поняли, что в первом случае метод работает как асинхронный?
+1, и непонятно как Вы поняли что во втором случае метод не работает как асинхронный?

Второй случай правильный, Вы получаете не результат выполнения, а Future, который позволит получить результат после того как он будет получен.
...
Рейтинг: 0 / 0
Spring @Async не работает когда соответствует требованиям
    #39774451
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KachalovОзвериннепонятно, как вы поняли, что в первом случае метод работает как асинхронный?
+1, и непонятно как Вы поняли что во втором случае метод не работает как асинхронный?

Второй случай правильный, Вы получаете не результат выполнения, а Future, который позволит получить результат после того как он будет получен.

он может быть не до конца правильный, если вызов происходит из того же класса, тогда аннотация будет игнорирована и и методпревратится в обычный синхроннный, которые выполняет операцию и оборачивает ее во future.
...
Рейтинг: 0 / 0
Spring @Async не работает когда соответствует требованиям
    #39774592
Imperous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинImperous, непонятно, как вы поняли, что в первом случае метод работает как асинхронный?

Когда проверял, то в метод createAsync вставил Thread.sleep(1000) - с ощутимой задержкой
Путем запуска списка с 20-ю юзерами и смотря в логи - было видно что залетало и вылетало не последовательно и быстро.
Кстати да, на самом деле возвращаемый юзер в данном случае не нужен, т.е. можно было сделать метод void.

ОзверинОткуда происходит вызов createAsync?
Вызов происходит из контроллера (другого класса) .


Во втором случае я наблюдал как последовательно обрабатывается каждый юзер через секунду.
...
Рейтинг: 0 / 0
Spring @Async не работает когда соответствует требованиям
    #39774608
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Imperous, дальше идет область гадания по картам таро...можно воспроизвести случай в минимальном окружении и выложить на гитхаб проект. Так будет проще для всех.
...
Рейтинг: 0 / 0
Spring @Async не работает когда соответствует требованиям
    #39774655
Imperous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинImperous, дальше идет область гадания по картам таро...можно воспроизвести случай в минимальном окружении и выложить на гитхаб проект. Так будет проще для всех.

Всем спасибо. Пока выковыривал код. Понял как оно работает и все встало на свои места.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring @Async не работает когда соответствует требованиям
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]