【发布时间】:2020-03-26 15:39:07
【问题描述】:
我想做与下面类似的事情,其中上一次调用的结果将用于使用 Project Reactor 对同一服务的下一次调用。
Message current;
Message next;
for each (Step step in steps)
{
current = new Message(step, next);
next = execute(current);
}
这就是我正在尝试使用反应器做的事情:
-
对于每个“步骤”(不断变化)
一个。为该步骤和最后一个结果创建一条消息(以 null 开始)。
b.使用消息调用服务并获取结果(单声道)。
c。将最后一条消息设置为此结果,以便在 1a 中使用。
获取最后的结果
到目前为止,我在这方面的拙劣尝试看起来像:
return fromIterable(request.getPipeline())
.map(s -> PipelineMessage.builder()
.client(client)
.step(s.getStep())
.build())
.flatMap(z -> {
return this.pipelineService.execute(z);
})
.last()
.map(m -> ok()
.entity(m.getPayload())
.type(m.getType())
.build());
【问题讨论】:
标签: project-reactor