gpt4 book ai didi

scala - 图表创建错误 : requirement failed: The inlets [] and outlets [] must correspond to the inlets [in] and outlets [out]

转载 作者:行者123 更新时间:2023-12-03 02:16:43 25 4
gpt4 key购买 nike

我正在使用 akka Streams graphDSL 创建一个可运行的图。流组件的入口/导出不存在编译时错误。运行时抛出以下错误:

有什么想法我应该验证什么才能使其运行吗?

requirement failed: The inlets [] and outlets [] must correspond to the inlets [in] and outlets [out]
at scala.Predef$.require(Predef.scala:219)
at akka.stream.Shape.requireSamePortsAs(Shape.scala:168)
at akka.stream.impl.StreamLayout$CompositeModule.replaceShape(StreamLayout.scala:390)
at akka.stream.scaladsl.GraphApply$class.create(GraphApply.scala:18)
at akka.stream.scaladsl.GraphDSL$.create(Graph.scala:813)
at com.flipkart.connekt.busybees.streams.Topology$.bootstrap(Topology.scala:109)
at com.flipkart.connekt.busybees.BusyBeesBoot$.start(BusyBeesBoot.scala:65)
at com.flipkart.connekt.boot.Boot$.delayedEndpoint$com$flipkart$connekt$boot$Boot$1(Boot.scala:39)
at com.flipkart.connekt.boot.Boot$delayedInit$body.apply(Boot.scala:13)

图表结构:

source ~> flowRate ~> render ~> platformPartition.in
platformPartition.out(0) ~> formatIOS ~> apnsDispatcher ~> apnsEventCreator ~> merger.in(0)
platformPartition.out(1) ~> formatAndroid ~> httpDispatcher ~> gcmPoolFlow ~> rHandlerGCM ~> merger.in(1)
merger.out ~> evtCreator ~> Sink.ignore

最佳答案

您有一个未使用的入口或导出(您的一个流或某些东西未在所有侧面连接)。以下是一些示例:

这有效:

val workingFlow =
Flow.fromGraph(GraphDSL.create() { implicit b =>
import GraphDSL.Implicits._
val intFlow = b.add(Flow[Int])
FlowShape(intFlow.in, intFlow.out)
})

以下代码会产生与您类似的错误,因为它具有整个未使用的流程:

val buggyFlow =
Flow.fromGraph(GraphDSL.create() { implicit b =>
import GraphDSL.Implicits._
val intFlow = b.add(Flow[Int])
val unusedFlow = b.add(Flow[Int]) // ERROR: This flow is unused
FlowShape(intFlow.in, intFlow.out)
})

一个稍微复杂的例子:这里没有整个未使用的流,只有一个未使用的导出。它会产生相同的错误:

val buggyFlow =
Flow.fromGraph(GraphDSL.create() { implicit b =>
import GraphDSL.Implicits._

val broadcast = b.add(Broadcast[Int](2))
val intFlow = b.add(Flow[Int])
val unusedFlow = b.add(Flow[Int]) // ERROR: This flow's outlet isn't used

broadcast ~> intFlow
broadcast ~> unusedFlow

FlowShape(broadcast.in, intFlow.out)
})

关于scala - 图表创建错误 : requirement failed: The inlets [] and outlets [] must correspond to the inlets [in] and outlets [out],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35452428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com