如何创建一个流阶段,让它在一段时间后“忘记”重启?我想实现一些类似于RestartFlow的策略,比如“如果阶段在5分钟内重启了3次,阶段失败。上次重启15分钟后,忘记阶段曾经重启过”。
发布于 2019-06-25 06:50:25
没有您想要的行为的开箱即用类。然而,查看RestartFlow.withBackoff的源代码,以您想要的方式对其进行修改似乎并不困难。在幕后,它使用RestartWithBackoffFlow类,而该类又使用RestartWithBackoffLogic。只需添加更多的var来记住上次重启发生的时间(它已经有了var restartCount = 0某个状态),并修改函数maxRestartsReached,使其考虑到一些“重置”超时。
发布于 2019-06-26 22:16:17
您正在寻找的可能是akka.actor.OneForOneStrategy,它允许在一个时间窗口内配置故障容错。
那就是你需要实现一个监督策略。
https://stackoverflow.com/questions/56737556
复制相似问题