【发布时间】:2020-10-29 16:07:28
【问题描述】:
我需要定期向参与者发送消息。根据集群配置,有 3 个节点可用。所以节点中的每个参与者都在调度消息。但我希望一个演员来完成这项工作,这样我就可以避免重新处理和重复处理。
有什么方法可以让我们从集群中调度消息或任务,或者任何其他方式来解决这个问题。
【问题讨论】:
-
等一下。当然,Akka 已经有一种机制来防止这种情况发生。在 Actor 模型中,通常 3 个节点中的一个会从队列中抓取任务并进行处理,使其对其余节点不可用。
-
这不是任务。我正在做如下 Context.System.Scheduler .ScheduleTellRepeatedly(_interval, _interval, Self, new SendOutMessage(), Self); }
-
那么消息。应该有一种方法来配置 Akka,以便只有一个参与者处理消息。如果这不可行,请找到 pattern,它将传入消息分配给单个可用参与者进行处理。