阿卡 - 一个演员被拦下后的事情?

时间:2016-11-04 15:50:08

标签: scala akka actor akka-supervision

我不确定Akka监督的方法是什么。

我有一个Akka actor,它会在消息触发时从FTP服务器列出文件。如果连接断开,则actor将失败并发生异常(例如,IOException),这将触发监督。在这一点上,我看到两种选择:

  • 我一直在恢复/重新启动演员,直到服务器恢复,可能是指数退避
  • 我设置参数(例如maxNrOfRetries = xy),主管将放弃并在xy次后停止演员

第一个策略似乎很浪费,但第二个策略似乎带来了另一个问题:演员如何最终重启?我觉得调整Backoff主管的参数是最好的方法,但也许我错过了什么?

1 个答案:

答案 0 :(得分:0)

如果您需要在不知道连接何时再次启动的情况下最终重启actor,指数退避(上限为60秒?)似乎是合理的。

这样,如果连接只丢失了几秒钟,并且关闭了不浪费的资源,那么您可以快速重新连接。退避的上限设置了演员离线的最长时间,即使连接可能已备份。