我有一个方法
@Service
public class MyService {
public Mono<Integer> processData() {
... // very long reactive operation
}
}
在正常程序流程,我呼此方法的异步通过一种卡夫卡的事件。
为测试目的,我需要 让的方法作为一个网络服务,但该方法应该暴露如异:返回仅HTTP代码200确定("接受的请求"),继续数据处理的背景。
它是确定(=它没有任何不必要的副作用)只是为了叫 Mono#subscribe()
和返回从控制方法?
@RestController
@RequiredArgsConstructor
public class MyController {
private final MyService service;
@GetMapping
public void processData() {
service.processData()
.subscribeOn(Schedulers.boundedElastic())
.subscribe();
}
}
或者是更好地做到这一点像这样(在这里我很困惑的警告从用浏览器也许一样 https://youtrack.jetbrains.com/issue/IDEA-276018 ?):
public Mono<Void> processData() {
service.processData()
.subscribeOn(Schedulers.boundedElastic())
.subscribe(); // IntelliJ complains "Inappropriate 'subscribe' call" but I think it's a false alarm in my case(?)
return Mono.empty();
}
或者一些其他的解决方案?