38 lines
1.5 KiB
Java
38 lines
1.5 KiB
Java
package com.myoa.engineering.crawl.ppomppu.receiver.infrastructure.client;
|
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.core.ParameterizedTypeReference;
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.web.reactive.function.client.WebClient;
|
|
import org.springframework.web.reactive.function.client.WebClientRequestException;
|
|
|
|
import com.myoa.engineering.crawl.ppomppu.support.dto.code.PpomppuBoardName;
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import reactor.core.publisher.Mono;
|
|
import reactor.core.scheduler.Schedulers;
|
|
|
|
@Slf4j
|
|
@Component
|
|
public class ProcessorAPIWebClient {
|
|
|
|
private final WebClient webClient;
|
|
|
|
public ProcessorAPIWebClient(WebClient.Builder webClientBuilder,
|
|
@Value("${webclient.base-url}") String baseUrl) {
|
|
this.webClient = webClientBuilder.baseUrl(baseUrl)
|
|
.build();
|
|
}
|
|
|
|
public Mono<String> emitParseEvent(PpomppuBoardName boardName) {
|
|
return webClient.post()
|
|
.uri("/api/v1/crawl/boards/{boardName}", boardName)
|
|
.exchangeToMono(e -> e.bodyToMono(new ParameterizedTypeReference<String>() {}))
|
|
.publishOn(Schedulers.boundedElastic())
|
|
.onErrorResume(WebClientRequestException.class, t -> {
|
|
log.info("Exception occured, ignoring. : {}", t.getClass().getSimpleName());
|
|
return Mono.empty();
|
|
});
|
|
}
|
|
}
|