728x90
동기화 방법은 여러가지 방법이 있다
그중에서 나는 block을 하는 방법을 적용 시켜보았다.
다음엔 분산락을 이용해서 동기화를 시켜보겠습니다.
Mono<String> responseMono = decodedParsingService.fetchDataFromExternalApi(); // 1. 외부망에서 data를 가져온다.
String response = responseMono.block(); // +@ 비동기 호출 기다리기 : data를 가져온다음에 decoding을 해야돼는데, 순서가 안맞으면 decodedDataDto값이 null이 나오므로 blcok을 이용해서 동기화를 시킴
DecodedDataDto decodedDataDto = decodedParsingService.handleApiResponse(response); // 2. decoding된 데이터들을 가져온다.
saveXmlToDbService.savePurchaseOrderDataFromXmlData(decodedDataDto.getXmlData()); // 3. xml 데이터를 oracle db에 넣는다.
saveFileToFtpService.saveRecordDataFromJsonData(decodedDataDto.getJsonData());// 4. json 데이터를 ftp file에 저장한다.
728x90
'과제' 카테고리의 다른 글
외부 API 가져오는 방법 (0) | 2023.09.12 |
---|---|
숙련과제 레벨2 고려사항 (0) | 2023.01.07 |