考虑这个简单的流:
Source(1 to 5)
.mapAsync(1) { i =>
if (i % 3 == 0) Future.failed(new Exception("I don't like 3"))
else Future.successful(i)
}
.withAttributes(
ActorAttributes.supervisionStrategy(Supervision.restartingDecider)
)
.runForeach(i => println(s"#$i"))
这实际上打印
#1
#2
#4
这与恢复策略相同。我希望流在失败的未来之后重新启动,输出如下
#1
#2
#1
#2
...
- 为什么在这种情况下 Resume 和 Restart 策略的行为方式相同?
- 如何从头开始重新启动流?