我只想看看Mutiny (和java流API ).
我有以下代码从AWS队列中读取消息,ref:夸克sqs指南
Uni<List<Quark>> result =Uni.createFrom()
.completionStage(sqs.receiveMessage(m -> m.maxNumberOfMessages(10).queueUrl(queueUrl)))
.onItem().transform(ReceiveMessageResponse::messages)
.onItem().transform(m -> m.stream().map(Message::body).map(this::toQuark).collect(Collectors.toList()));接下来,我希望将列表中的每个元素发送到方法handleMessage(Quark quark)。我该如何以“叛变的方式”来做这件事呢?我需要再次转换还是不应该转换collect..or?
发布于 2022-02-02 07:44:42
现在,你得到了一个Uni<List<Quark>>。更改的方法是将其转换为一个Multi并处理每个项目:
Multi<Quark> multi = result.onItem().transformToMulti(list -> Multi.createFrom().items(list));多是一条小溪。每个项目将是一个Quark。然后,您只需执行以下操作:
multi.onItem().invoke(q -> handleMessage(q))我使用invoke是因为我不知道handleMessage在做什么。如果它正在处理夸克并返回某些内容,请使用transform。如果不返回任何内容,请使用invoke。
顺便说一句,别忘了订阅返回的Multi。
https://stackoverflow.com/questions/70949062
复制相似问题