Çağıran thread üzerinde çalışır. Thread değiştirmek için Mono.fromCallable().subscribeOn() kullanılır.
Örnek
Elimizde şöyle bir kod olsun
Log şöyledir. Burada Mono.just() çağrısının thread değiştirmediği görülebilir.@Slf4j@RestController@RequestMapping("/")public class Controller {RestTemplate restTemplate = new RestTemplate();@GetMapping("/blocking")public Mono<String> getFiles() {log.info("querying google");return Mono.just(getHttpBlocking("https://www.google.com")).doOnNext(s ->log.info("found content length {}", s.length()));}String getHttpBlocking(String url) {return restTemplate.getForObject(url, String.class);}}
{"@timestamp":"2021-06-07T07:05:57.225-04:00","@version":"1","message":"querying google","logger_name":"net.kamradtfamily.blockingnono.Controller","thread_name":"reactor-http-nio-3","level":"INFO","level_value":20000}{"@timestamp":"2021-06-07T07:05:57.640-04:00","@version":"1","message":"found content length 12962","logger_name":"net.kamradtfamily.blockingnono.Controller","thread_name":"reactor-http-nio-3","level":"INFO","level_value":20000}
Hiç yorum yok:
Yorum Gönder