首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Mutiny和Quarkus迭代AWS SQS消息列表

使用Mutiny和Quarkus迭代AWS SQS消息列表
EN

Stack Overflow用户
提问于 2022-02-01 23:49:05
回答 1查看 358关注 0票数 1

我只想看看Mutiny (和java流API ).

我有以下代码从AWS队列中读取消息,ref:夸克sqs指南

代码语言:javascript
复制
  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?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-02 07:44:42

现在,你得到了一个Uni<List<Quark>>。更改的方法是将其转换为一个Multi并处理每个项目:

代码语言:javascript
复制
Multi<Quark> multi = result.onItem().transformToMulti(list -> Multi.createFrom().items(list));

多是一条小溪。每个项目将是一个Quark。然后,您只需执行以下操作:

代码语言:javascript
复制
multi.onItem().invoke(q -> handleMessage(q))

我使用invoke是因为我不知道handleMessage在做什么。如果它正在处理夸克并返回某些内容,请使用transform。如果不返回任何内容,请使用invoke

顺便说一句,别忘了订阅返回的Multi。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70949062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档