So berechnen Sie die gesamte Prozesszeit in Java Reactive

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: So berechnen Sie die gesamte Prozesszeit in Java Reactive

by Guest » 03 Jan 2025, 14:04

Ich habe eine reaktive Java-Spring-Boot-App, in der ich die folgende Logik ausführe: Ich möchte protokollieren, wie viel Zeit es dauert, diese gesamte Methode abzuschließen. Ich kann die Methodensignatur ändern, möchte sie aber beibehalten.

Code: Select all

public Flux verifyStuff(){
return client.getSomeData1(query)
.doOnNext(
result1 -> log.info("Retrieved '{}' ", result1.size()))
.flatMapMany(result1 -> Flux.fromStream(result1.stream())
.concatMap(this::verifyresult1()));
}
Die Methode ruft also tatsächlich reaktiv eine Ergebnisliste ab und ruft nacheinander einen anderen Dienst auf.
Ich habe versucht, elapsed() zu verwenden, komme mir aber nicht aus der Fassung herum, wie es funktioniert.
Auch die folgende Version ausprobiert.

Code: Select all

public Flux verifyStuff(){
StopWatch stopWatch = new StopWatch();
stopWatch.start();
return client.getSomeData1(query)
.doOnNext(
result1 -> log.info("Retrieved '{}' ", result1.size()))
.flatMapMany(result1 -> Flux.fromStream(result1.stream())
.concatMap(this::verifyresult1())
.doFinally(signalType -> {
stopWatch.stop();
log.info("To execution time for verifying marketplace partners is {}ms",
stopWatch.getTotalTimeMillis());
});;
}
Damit ist das Protokoll jedoch abgeschlossen, bevor der gesamte Fluss unter „verifyresult1“ aufgelöst ist

Top