Mono<MyObj1> mono1 = repository.get(id); // data from reactive mongo
Flux<MyObj2> availabilityInfo = getAvailabilityInfo(); // blocking I/O call
Run Code Online (Sandbox Code Playgroud)
我想要实现的是迭代 availabilityInfo 并需要使用单声道数据应用一些条件并返回 MyObj2(其中包含该日期的 delieveryDate 和价格相关信息)。
我将尝试用幼稚的编码解释如下
foreach(MyObj2 obj : availabilityInfo){
if(MyObj1.getX() && obj.getY()){
return or break;
}
}
Run Code Online (Sandbox Code Playgroud)
我想从满足标准的通量中发出第一个元素 - MyObj1.getX() && obj.getY(),即使通量中还有其他元素符合标准。该标准基于来自 mono 的响应,这是一个反应性 mongo db 调用和来自发射通量元素的少数事实。
最初,我将默认打印机更改为其他打印机,然后在我按ctrl + P时在信息亭打印中打开了chrome,chrome仍在向先前选择的默认打印机发送打印请求。
有什么方法可以强制Chrome使用系统默认打印机,而不是使用最近的目的地?
是否可以在不将助焊剂转化为流的情况下从助焊剂中获得第一个元素?
我在reative API spring boot应用程序中使用resilience4j进行容错。我可以看到,即使 Mono 返回错误,所有事件都被视为成功。
服务层
@Override
@CircuitBreaker(name = "member-service")
public Mono<String> getMemberInfo(String memberId) {
return wsClient.getMemberInfo(memberId);
// This call will return WSException whenever there is 4XX or 5XX error
}
Run Code Online (Sandbox Code Playgroud)
application.yml配置
resilience4j.circuitbreaker:
backends:
member-service:
ringBufferSizeInClosedState: 1
ringBufferSizeInHalfOpenState: 2
waitInterval: 10000
failureRateThreshold: 75
registerHealthIndicator: true
recordExceptions:
- com.xx.WSException
ignoreExceptions:
- com.xxx.WSClientException
Run Code Online (Sandbox Code Playgroud)
我故意更改了 URI 路径,以便 WebClient 始终返回 404 错误,从而引发 WSException。当我看到下面的端点时,类型总是成功。我错过了什么?
http://localhost:8088/circuitbreaker-events/member-service
{
"circuitBreakerEvents": [
{
"circuitBreakerName": "member-service",
"type": "SUCCESS",
"creationTime": "2019-02-18T21:56:21.588+05:30[Asia/Calcutta]",
"durationInMs": 6
},
{
"circuitBreakerName": "member-service",
"type": "SUCCESS", …Run Code Online (Sandbox Code Playgroud)