Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 如何防止在Akka中通过ask模式重复处理失败消息?_Scala_Akka_Fault Tolerance - Fatal编程技术网

Scala 如何防止在Akka中通过ask模式重复处理失败消息?

Scala 如何防止在Akka中通过ask模式重复处理失败消息?,scala,akka,fault-tolerance,Scala,Akka,Fault Tolerance,经过一些调查后,更新了原始描述: 当我通过Ask模式向参与者发送消息时,参与者失败并出现异常,消息将再次被处理 重试的确切次数各不相同,我无法理解其原理。在我的大多数实验中,失败的消息会重试3次 如何微调Ask模式行为(例如,设置可预测的重试次数) 你的问题让我有些困惑,因为我认为你所描述的默认值不是默认值。默认情况下,失败的消息不会被处理3次。默认情况下,如果Actor中发生异常,则会重新启动并继续下一条消息。看 因此,对于您的问题: 我如何实现重新启动actor的逻辑,但是 跳过失败的消息,

经过一些调查后,更新了原始描述:

当我通过Ask模式向参与者发送消息时,参与者失败并出现异常,消息将再次被处理

重试的确切次数各不相同,我无法理解其原理。在我的大多数实验中,失败的消息会重试3次


如何微调Ask模式行为(例如,设置可预测的重试次数)

你的问题让我有些困惑,因为我认为你所描述的默认值不是默认值。默认情况下,失败的消息不会被处理3次。默认情况下,如果Actor中发生异常,则会重新启动并继续下一条消息。看

因此,对于您的问题:

我如何实现重新启动actor的逻辑,但是 跳过失败的消息,不尝试一次又一次地处理它

这是默认值

如何实现guardian actor上的默认监控器?如果 有人知道如何在他们的Github中找到这个地方,它会 很有帮助


在消息本身中添加多次尝试如何?当消息传入时,创建一个计数器递增的克隆。然后,您可以检查尝试次数是否超过限制,并在参与者本身中删除消息
case RetryMessage(有效负载,计数器)if counter>limit=>//放弃它
我做了一些调查,结果发现使用ask模式导致了所有这些重试。我更新了描述