如何创建一个流阶段,它将“忘记”一段时间后重新启动?我想用类似于“ RestartFlow
”的策略实施类似的策略,例如“如果该阶段在5分钟内重新启动了3次,则使该阶段失败。在最后一次重启之后的15分钟之后,请忘记该阶段曾经重启”
答案 0 :(得分:2)
没有随心所欲的行为类。但是,查看RestartFlow.withBackoff
的源代码,似乎很难以您想要的方式对其进行修改。它在后台使用RestartWithBackoffFlow类,而该类又使用RestartWithBackoffLogic。只需再添加一个var
来记住上一次重启发生的时间(它已经具有var restartCount = 0
的某种状态),然后修改函数maxRestartsReached
,以考虑到一些“重置”超时。>
答案 1 :(得分:1)
您正在寻找的可能是akka.actor.OneForOneStrategy
,它允许在时间范围内配置故障容限。
那是您需要实施监督策略的原因。