Mono.just(record)
.flatMap(RunTransformation::tranformParallel)
.sequential()
.doOnTerminate(RunCompletion::record)
.subscribe(RunAction::execute,
RunError::handleError);
Hello. I have a problem. but the problem is very weired. so I can't certain that the problem is bug.
First, I will explain the situation.
I made l7check method. but because of blocking call issue, I wrapped using Schedulers.boundedElastic()
(My reactor-core version is 3.3.4)
@GetMapping("/monitor/l7check")
public Mono<ResponseEntity<String>> l7check() {
// https://projectreactor.io/docs/core/release/reference/#faq.wrap-blocking
// DEFAULT_BOUNDED_ELASTIC_SIZE(maximum number of underlying threads to create) : 10 * Runtime.getRuntime().availableProcessors()
// DEFAULT_BOUNDED_ELASTIC_QUEUESIZE : 100000
// DEFAULT_TTL_SECONDS(Time-to-live for an idle) : 60
return Mono
.fromCallable(this::l7checkBlockingCall)
.subscribeOn(Schedulers.boundedElastic());
}
when I run application server, There is no problem. but A day or two passed, and suddenly there was a problem with the l7 check.
10.x.x.x - - [24/Jun/2020:13:42:10 +0900] "10.x.x.x" "GET /monitor/l7check HTTP/1.1" 499 0 1.994 1.994 "-" "-" "-"
10.x.x.x - - [24/Jun/2020:13:48:16 +0900] "10.x.x.x" "GET /monitor/l7check HTTP/1.1" 499 0 1.996 1.995 "-" "-" "-"
10.x.x.x - - [24/Jun/2020:13:51:06 +0900] "10.x.x.x" "GET /monitor/l7check HTTP/1.1" 499 0 1.994 1.994 "-" "-" "-"
10.x.x.x - - [24/Jun/2020:13:52:16 +0900] "10.x.x.x" "GET /monitor/l7check HTTP/1.1" 499 0 2.006 2.006 "-" "-" "-"
10.x.x.x - - [24/Jun/2020:13:53:06 +0900] "10.x.x.x" "GET /monitor/l7check HTTP/1.1" 499 0 1.995 1.994 "-" "-" "-"
10.x.x.x - - [24/Jun/2020:13:55:06 +0900] "10.x.x.x" "GET /monitor/l7check HTTP/1.1" 499 0 1.995 1.995 "-" "-" "-"
l7 Not all requests matter. However, once a problem occurs, it continues to occur. It didn't happen when the reactor-netty version was 0.9.2. When I raised it to 0.9.6 this time, I had a problem. It is too difficult to create a problem-reproducing sample. Please advise on this matter. Please tell me if there is any lack of information.
Hello All,
Howto store the value from a asynch call,so i can pass it to the next asynch function as params
Say for instance as below
public Mono<Account> fetchAccount(){
Mono<Account> account = webClient.get().uri("/demo/account-partner").retrieve()
.bodyToMono(Account.class).onErrorMap(exception -> new RuntimeException("account-partner"));
return account; }
public Mono<Demo> fetchAccountAndPartner(String accountNo,String partnerNo){
Mono<Demo> accountAndPartner = webClient.get()
.uri(uriBuilder ->
UriComponentsBuilder.fromPath("/entity/{account-nr}/{partner-id}").build(accountNo,partnerNo)
).retrieve().bodyToMono(Demo.class);
return accountAndPartner;
}
I would like to get the results of fetchAccount() and and pass the accountNo and parnterNo from Account to
fetchAccountAndPartner(String accountNo,String partnerNo)
Thanks in Advance
ERROR: Permission to reactor/reactor-core.git denied to johncfranco.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
reactor/reactor-core repository
https://docs.github.com/en/github/getting-started-with-github/fork-a-repo
Hi can anyone help me please ?
Pinging here after trying all afternoon and having no success .
Mono.defer(() -> apiCallWhichReturnsMono())
.doOnError(e -> callSomeAPI().subscribe())
.map(someData -> continue with data)
I don't want to do .subscribe()
explicitly in doOnError because it loses the subscriberContext that is coming from downstream.
Also I dont want to wait on callSomeAPI
cause I’m not interested in the data.
Any help is appreciated.
@Test
fun stringBuilderWithWebFLux() {
val builder = StringBuilder()
builder.appendln("Initial")
val list = listOf(1,2,3)
val res = Flux.fromIterable(list)
.flatMap {
apiCall(it).map { builder.appendln(it) }
}.then(builder.toString().toMono())
StepVerifier.create(res)
.consumeNextWith {
print(it) //returns Intial instead of Initial \n Value 1 \n Value 2 \n Value 3
}.verifyComplete()
}
private fun apiCall(it: Int?): Mono<String> {
return "Value $it".toMono()
}
Hi. I wonder if my code is correct. I have a method that produces a Flux and I need to pick one element from it, or do something if the Flux is empty (generate an error). So far I have the following:
service.getFoo("foo")
.sort((Comparator.comparing(Foo:date)))
.next()
.switchIfEmpty(Mono.error(NotFoundException::new))
.doOnNext(System.out::println)
.subscribe();
It seems to work fine but I'm seeing the following ERROR in the log output:
2021-02-23 15:23:22 [main] ERROR [] reactor.core.publisher.Operators - Operator called default onErrorDropped
reactor.core.Exceptions$ErrorCallbackNotImplemented: com.idexx.isc.realtime.server.session.ClientNotFoundException
Caused by: NotFoundException: null
...