Service Fabric 参与者提醒和重复消息
Service fabric actor reminders and duplicate messages
Service Fabric documentation 指出:
Actors may receive duplicate messages from the same client.
这也适用于提醒吗?如果我为我的actor实例设置一个提醒,是否可以同时调用两次?
我的团队向 Service Fabric 支持提交了类似的问题,这是他们的回复...
*“如果在执行‘ReceiveReminderAsync()’回调时发生故障转移(即当前主进程变为次要进程或主进程崩溃),或者在‘ReceiveReminderAsync()’完成后但在 ActorRuntime 自动保存之前启动故障转移state 和 notes down completion,在新的 primary 上,这个提醒会立即再次触发。
请注意,在这种情况下,当新的主节点出现并调用提醒时,先前主节点中的提醒回调可能仍在执行(并且最终将无法进行任何本地状态更改,因为副本已成为辅助节点) ."*
此行为似乎与 public actor 方法被调用两次的原因完全一致。
Service Fabric documentation 指出:
Actors may receive duplicate messages from the same client.
这也适用于提醒吗?如果我为我的actor实例设置一个提醒,是否可以同时调用两次?
我的团队向 Service Fabric 支持提交了类似的问题,这是他们的回复...
*“如果在执行‘ReceiveReminderAsync()’回调时发生故障转移(即当前主进程变为次要进程或主进程崩溃),或者在‘ReceiveReminderAsync()’完成后但在 ActorRuntime 自动保存之前启动故障转移state 和 notes down completion,在新的 primary 上,这个提醒会立即再次触发。
请注意,在这种情况下,当新的主节点出现并调用提醒时,先前主节点中的提醒回调可能仍在执行(并且最终将无法进行任何本地状态更改,因为副本已成为辅助节点) ."*
此行为似乎与 public actor 方法被调用两次的原因完全一致。