【问题标题】:Is it possible to limit the scheduler to one actor in Akka.Net是否可以将调度程序限制为 Akka.Net 中的一个参与者
【发布时间】:2020-10-29 16:07:28
【问题描述】:

我需要定期向参与者发送消息。根据集群配置,有 3 个节点可用。所以节点中的每个参与者都在调度消息。但我希望一个演员来完成这项工作,这样我就可以避免重新处理和重复处理。

有什么方法可以让我们从集群中调度消息或任务,或者任何其他方式来解决这个问题。

【问题讨论】:

  • 等一下。当然,Akka 已经有一种机制来防止这种情况发生。在 Actor 模型中,通常 3 个节点中的一个会从队列中抓取任务并进行处理,使其对其余节点不可用。
  • 这不是任务。我正在做如下 Context.System.Scheduler .ScheduleTellRepeatedly(_interval, _interval, Self, new SendOutMessage(), Self); }
  • 那么消息。应该有一种方法来配置 Akka,以便只有一个参与者处理消息。如果这不可行,请找到 pattern,它将传入消息分配给单个可用参与者进行处理。

标签: c# .net-core akka.net


【解决方案1】:

我认为你可以创建一个cluster singleton,这样你就只有一个演员类型。对于日程安排,您可以使用Quartz Actor

【讨论】:

  • Quartz actor 无法解决我的问题,因为我的应用程序将有多个节点并将集群设置为单例,这不是我的选择
猜你喜欢
  • 1970-01-01
  • 2012-03-18
  • 1970-01-01
  • 2015-06-10
  • 2015-05-05
  • 1970-01-01
  • 1970-01-01
  • 2011-10-27
  • 1970-01-01
相关资源
最近更新 更多