Spring Webasynctask в контроллере и Async в репозитории

У меня есть Spring Controller, который возвращает WebAsyncTask и сервисный компонент из контроллера. Служебный компонент вызывает компонент хранилища, который был выполнен, и возвращает CompletableFuture в цикле. Метод репозитория, обозначенный как @Async. Если число вызванных объектов будущего CompletableFuture меньше, возвращается результат. Если больше, чем препятствие, это ударил в алло. Какое время ожидания я должен настроить.

В контроллере для webasynctask я дал 50 минут. Есть ли какие-либо другие изменения для обработки @async в компоненте репозитория?

Spring 4.3 и Java 8 настроили весну

@Repository
public class EmployeeRepostiry {

 @Async
 public CompleteableFuture<StatusVO> getEmployee(String id) {
  StatusVo status = new StatusVO();
   return CompletableFuture.completedFuture(status);
 }
}

Класс CallingService:

@Service
public class EmployeeService {

 @Autowired public EmployeeRepostiry 

 public List<StatusVO> getEmployee(List<String> ids) {
  List<StatusVo> returnStatus = new ArrayList<StatusVO>();
   List<CompleteableFuture<StatusVO>> statsuss = new ArrayList<CompleteableFuture<StatusVO>>();
   for(String id: ids) {
    statsuss.add(employeeReporsitory.getEmployee(id));
   }
   try {
       CompletableFuture.allOf(statsuss.toArray(new CompletableFuture[statsuss.size()])).join();
       } catch(Exception e){
          e.printstacktracce();
          }
   Logger.debug("not coming to this line");    //Not coming here

returnStatus = statsuss.stream().map(completableStatus -> {
        ServiceActionStatusVO statusVO = null;
        try {
            statusVO = completableStatus.get();
        } catch (InterruptedException | ExecutionException e) {
            statusVO = new StatusVO();
            statusVO.setStatus(Constants.ERROR);
            statusVO.setStatusText(e.getMessage());
            LOGGER.error("Failed on the state of execution ",e);
        }
        return statusVO;

    }).collect(Collectors.toList());
   return status:
}

Вид -> Контроллер (webaynctask) -> Сервис [список завершаемых фьючерсов] -> Репозиторий (асинхронный)

0 ответов

Другие вопросы по тегам