콘텐츠로 이동

2022 08 03

2022-08-03

WebClient 비동기

  • 비동기 처리
    • Mono 객체의 subscribe 메서드를 통해 객체 담기
    • CountDownLatch.await() 을 통해 모든 스레드가 일 처리 완료할 때 까지 기다리게 할 수 있음
      public List<DistanceInfoResponse> searchDistrictInfo(Position position) {
          District[] districts = District.values();
          Map<String, NaviResponse> naviResponses = new HashMap<>();
          CountDownLatch countDownLatch = new CountDownLatch(districts.length);
      
          for (District district : districts) {
              NaviRequest naviRequest = NaviRequest.of(position.getX(), position.getY(), district.getLong(), district.getLat());
              Mono<NaviResponse> naviResponseMono = sendRequest(naviRequest);
              naviResponseMono.subscribe(naviResponse -> {
                  naviResponses.put(district.name(), naviResponse);
                  countDownLatch.countDown();
              });
          }
      
          try {
              countDownLatch.await();
          } catch(Exception e) {
              throw e;
          }
      }
      

Jenkins pipeline

ECS

Fargate

Spring security filter 제외시키기