【发布时间】:2017-06-14 12:58:05
【问题描述】:
我已阅读Akka streams materialization concept,并了解流物化是:
获取流描述(图表)并分配运行所需的所有必要资源的过程。
我按照一个示例构建了我的 akka 流,使用 mapMaterializedValue 将消息发送到队列。代码的目的是在构建流蓝图并且代码正常工作后将消息推送到队列,但我不太明白 mapMaterializaedValue 在代码中做了什么:
Promise<SourceQueueWithComplete<String>> promise = new Promise.DefaultPromise<>();
Source<String, SourceQueueWithComplete<String>> s = Source
.queue(100, OverflowStrategy.fail())
.mapMaterializaedValue(queue -> {
promise.trySuccess(queue);
});
source.toMat(Sink.foreach(x -> System.out.println(x)), Keep.left()).run(materIalizer);
promise.<SourceQueueWithComplete<String>>future().map(mapMapperFunction(), actorSystem.dispatcher());
【问题讨论】:
标签: java promise akka-stream