在异步观察者中调用Uni的最佳方法是什么?如果我能返回Uni,那就太好了,但不幸的是,这是行不通的。
void observe(@ObservesAsync MyEvent event) {
Uni<Object> task;
}发布于 2022-03-22 06:58:58
正如@ladicek所提到的,你可以:
termination
1)同步观测器并阻塞直到终止
void observe(@Observes MyEvent event) {
Uni<Void> uni = ...;
uni.await().indefinitely();
}2)同步观测器,并使用火忘方法触发异步操作。
void observe(@Observes MyEvent event) {
Uni<Void> uni = ...;
uni.subscribeAsCompletionStage(); // Fire and forget, no error reporting
}或者:
void observe(@Observes MyEvent event) {
Uni<Void> uni = ...;
uni.subscribe().with(success -> ..., failure -> log(failure));
}创建一个CompletionStage 异步观测器并生成
void observe(@Observes MyEvent event) {
Uni<Void> uni = ...;
return uni.subscribeAsCompletionStage();
}https://stackoverflow.com/questions/71556092
复制相似问题