Akka.net:确保始终启动超时消息

Akka.net: assuring a timeout message is always launched

假设您有一个 "business" 超时的 actor。即使演员所在的服务器死机或重新启动,我也希望启动该超时。我会把那个演员塑造成执着的。

确保即使单个服务器发生故障也会超时启动的最佳方法是什么?

谢谢

我会这样设置:

BA => (rqTimeoutMsg) => GDA => TM (waits) => BA => (confirmation) => TM => GDA

BA = 您的业务参与者

GDA = 保证交付演员 (Akka.Persistence)

TM = timeoutManager

BA 向 'GDA' 发送 'timeout' 请求,后者将其转发给超时管理器。它等到时间 X(我建议使用 Scheduler)然后将 'timeout' 发送给 BA,BA 应该将其确认回 TM 或直接发送给 GDA。

GDA 和 TM 一起形成了一个持久化的 TimeoutManager,所以它们 could/should 被包装在一个 Actor 中,这是 BA 与之交谈的那个(requestTimeout,并且在接收到 'timeout',confirmReceptionOfTimeout ).

但是问题是:您打算如何确保 BA 在(崩溃+)重启后仍然存在?