重新启动阈值

时间:2019-06-24 13:23:37

标签: akka akka-stream

如何创建一个流阶段,它将“忘记”一段时间后重新启动?我想用类似于“ RestartFlow”的策略实施类似的策略,例如“如果该阶段在5分钟内重新启动了3次,则使该阶段失败。在最后一次重启之后的15分钟之后,请忘记该阶段曾经重启”

2 个答案:

答案 0 :(得分:2)

没有随心所欲的行为类。但是,查看RestartFlow.withBackoff的源代码,似乎很难以您想要的方式对其进行修改。它在后台使用RestartWithBackoffFlow类,而该类又使用RestartWithBackoffLogic。只需再添加一个var来记住上一次重启发生的时间(它已经具有var restartCount = 0的某种状态),然后修改函数maxRestartsReached,以考虑到一些“重置”超时。

答案 1 :(得分:1)

您正在寻找的可能是akka.actor.OneForOneStrategy,它允许在时间范围内配置故障容限。

那是您需要实施监督策略的原因。

https://doc.akka.io/docs/akka/current/fault-tolerance.html