让一个演员再次尝试失败的好方法是什么,但重试之间的时间间隔越来越长?假设我希望演员在15秒后再次30秒钟再次尝试一次,那么每一分钟都会有限次.
这是我想出的:
>执行实际工作的actor的方法是可选的
RetryInfo参数,如果存在,则包含的号码
我们目前正在重试
>失败时,actor将向retryCount 1发送一个新的ScheduleRetryMessage,然后抛出一个RuntimeException
>另一个演员监督工作者演员,使用新的OneForOneStrategy(-1,Duration.Inf())返回Resume作为其指令,actor没有状态,所以Resume应该OK
>在接收到ScheduleRetryMessage时,演员将会
>如果retryCount< MAX_RETRIES:使用Akka的调度程序安排在所需延迟后发送RetryMessage
>其他:最后放弃,发送消息给另一个演员错误报告