Add Experiment#compareMonoResult

This commit is contained in:
Chris Eager 2024-09-26 09:38:39 -05:00 committed by Chris Eager
parent e20a4c1f77
commit 513f19370a
2 changed files with 10 additions and 2 deletions

View File

@ -18,6 +18,7 @@ import java.util.concurrent.Executor;
import java.util.function.Supplier;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import reactor.core.publisher.Mono;
/**
* An experiment compares the results of two operations and records metrics to assess how frequently they match.
@ -70,6 +71,14 @@ public class Experiment {
this.experimentNullMismatchTimer = experimentNullMismatchTimer;
}
public <T> void compareMonoResult(final T expected, final Mono<T> experimentMono) {
final Timer.Sample sample = Timer.start();
experimentMono.subscribe(
actual -> recordResult(expected, actual, sample),
cause -> recordError(cause, sample));
}
public <T> void compareFutureResult(final T expected, final CompletionStage<T> experimentStage) {
final Timer.Sample sample = Timer.start();

View File

@ -463,8 +463,7 @@ public class MessagesCache extends RedisClusterPubSubAdapter<String, String> imp
}
});
experiment.compareFutureResult(mrmMessage.toBuilder().clearSharedMrmKey().build(),
mrmMessageMono.toFuture());
experiment.compareMonoResult(mrmMessage.toBuilder().clearSharedMrmKey().build(), mrmMessageMono);
return mrmMessageMono;
} else {