Как получить предварительно загруженное состояние актера в Service Fabric - PullRequest
0 голосов
/ 06 апреля 2020

Я разрабатываю приложение на Azure Сервис Фабри c. Это простое приложение User TODO. Я создал TodoActor для добавления User TODO. Он просто добавляет пользовательское TODO, используя StateManager. Мне известно, что StateManager будет хранить состояние в памяти диска, а не в какой-либо базе данных.

Но перед запуском приложения я хочу, чтобы пользователь предварительно загрузил для них Todos. Есть ли способ предварительно загрузить Штаты для актера?

Есть ли способ разместить эти данные в базе данных?

1 Ответ

0 голосов
/ 06 апреля 2020

Актеры создаются , когда они используются. Так, например, когда он вызывается или когда срабатывает напоминание. Если Actor никогда не использовался ранее, он еще не существует, поэтому нет способа предварительно загрузить состояние.

Что вы можете сделать, это предварительно загрузить данные точно в срок, когда Actor создано:

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

}
...