azure-service-fabric - 清理 Azure Service Fabric 中的休眠参与者

标签 azure-service-fabric

我正在使用每个设备都有自己的参与者以及系统中的其他参与者的模型来评估 IoT 样式应用程序的 Service Fabric。我知道不活跃的 Actor 会自动被垃圾收集,但他们的状态会在他们重新激活时持续存在。我还看到有一种方法可以显式删除 actor 及其状态。

在我的场景中,我想知道是否有关于如何处理休眠、失败或“消失”并且不再发送另一条消息的设备的任何模式或建议。如果没有明确的删除,它们的状态将永远存在,我想自动清理它,例如:六个月后。

最佳答案

这是一个有效的方法。

private async Task Kill()
{
     // Do other required cleanup
     var actorToDelete = ActorServiceProxy.Create(ServiceUri, Id);
     await actorToDelete.DeleteActorAsync(Id, CancellationToken.None).ConfigureAwait(false);
}

然后只需使用以下行调用此方法:

var killTask = Task.Run(Kill);

这将启动一个引用 actor 的新线程,该线程将被阻塞直到当前回合结束。当任务最终获得对 Actor 的访问权限时,它将删除它。美妙之处在于,这可以在 actor 内部调用,这意味着他们可以“ self 删除”。

关于azure-service-fabric - 清理 Azure Service Fabric 中的休眠参与者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37341735/

相关文章:

azure - 服务结构参与者状态

azure - 如何为 Service Fabric 配置 Let's Encrypt 证书?

azure - 是否需要调整服务结构负载均衡器?

azure-service-fabric - Service Fabric 集群中任何时候给定参与者的给定参与者 ID 的参与者实例的最大数量是多少?

c# - 删除 Service Fabric App 后进程仍在运行

c# - Service Fabric 包含其他文件

Azure Service Fabric 32 位支持

c# - Serilog 不适用于 Reliable Actor Services

azure-service-fabric - 使用Azure Service Fabric部署的微服务的API网关/代理模式

service-fabric-stateless - 如何重新启动 Service Fabric 应用程序