如何在Service Fabric中获得预加载的Actor状态



我正在Azure服务结构上开发一个应用程序。它是一个简单的用户TODO应用程序。我创建TodoActor是为了添加用户TODO。它只是使用StateManager添加用户TODO。我知道StateManager会将State存储在磁盘内存中,而不是任何数据库中。

但在启动应用程序之前,我希望用户已经为它们预装了Todos。有没有办法为演员预先加载States?

有什么方法可以将这些数据保存在数据库中吗?

演员是在使用时创建的。例如,当它被调用时,或者当提醒触发时。如果Actor以前从未使用过,那么它现在还不存在,所以无法预加载状态。

您可以做的是在创建Actor时及时预加载数据:

protected override async Task OnAactivateAsync()
{
if(!await StateManager.ContainsStateAsync("ToDoState"))
{
await this.StateManager.TryAddStateAsync<List<string>>("ToDoState", new List<string>{});
}
}

最新更新