我正在开发一个使用 ReliableActors 和状态的 Service Fabric 项目。我在 Actor 的状态下保存和删除内容,并有一些我想测试的重新激活逻辑。
有没有办法手动停用或垃圾收集 Actor ?我最好进行一个测试,将数据加载到 Actor 中,停用它,然后运行一些函数以确保 Actor 仍然按预期运行。
最佳答案
您可以adjust参与者被视为空闲以强制进行更频繁的垃圾收集的时间。文档中的代码:
ActorRuntime.RegisterActorAsync<MyActor>((context, actorType) =>
new ActorService(context, actorType,
settings:
new ActorServiceSettings()
{
ActorGarbageCollectionSettings =
new ActorGarbageCollectionSettings(idleTimeoutInSeconds: 20, scanIntervalInSeconds:20)
}))
.GetAwaiter()
.GetResult();
如您所见,有两个参数:idleTimeoutInSeconds — 在此之后,可以考虑停用不执行任何操作的 Actor; scanIntervalInSeconds — 服务结构检查参与者不活动的时间间隔。
关于c# - 服务结构 - 用于调试/测试目的的手动 Actor 停用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39700162/