Это правильный способ использования @Async
в Spring Boot?
@Service
class someServiceImpl {
...
public someResponseDTO getUsers(int userId) {
// Do some logic
...
// Call external API with another service method from another service impl
anotherService.emailUserInTheBackground(userId);
return someResponseDTO;
}
...
}
@Service
public class AnotherService {
@Async
public void emailUserInTheBackground(int userId) {
// This might take a while...
...
}
}
Поскольку emailUserInTheBackground()
имеет аннотацию @Async
и возвращаемый тип void
, блокирует ли он вообще строку return someResponseDTO
?
Все, что я хотел, это вернуть ответ вызывающей стороне без ожидания, потому что emailUserInTheBackground()
занимает слишком много времени и не привязан напрямую к объекту ответа.