【发布时间】:2020-06-27 16:13:07
【问题描述】:
如何从 Akka Streams 接收器中抛出的异常中恢复?
简单示例:
Source<Integer, NotUsed> integerSource = Source.from(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9));
integerSource.runWith(Sink.foreach(x -> {
if (x == 4) {
throw new Exception("Error Occurred");
}
System.out.println("Sink: " + x);
}), system);
输出:
Sink: 1
Sink: 2
Sink: 3
如何处理异常并从源移至下一个元素? (又名 5,6,7,8,9)
【问题讨论】:
-
您想跳过特定项目吗?然后只需
filter他们(更多详情请参阅:doc.akka.io/docs/akka/current/stream/operators/Source-or-Flow/…) -
我不知道哪个元素会导致异常。我的 Sink 可能是 Kafka 或 RabbitMq,所以如果说与 rabbbitmq 的连接暂时失败,那么我不想停止流,而是继续未来的元素
标签: java scala akka akka-stream