В приложении ServiceFabric мне необходимо создать тысячи субъектов с отслеживанием состояния, поэтому мне нужно избегать накопления субъектов, когда они становятся бесполезными.
Я знаю, что не могу удалить Актера из самого Актера, но я не хочу отслеживать Актеров и циклически удалять их.
Среда выполнения Актеров использует коллекцию Garbace для удаления деактивированных объектов Актера (но не их состояния); Итак, я думал об удалении состояния Актера внутри метода OnDeactivateAsync() и позволить сборщику мусора освободить объект Актера после обычных 60 минут.
Теоретически что-то подобное должно быть эквивалентно для удаления Актера, не так ли?
protected override async Task OnActivateAsync()
{
await this.StateManager.TryRemoveStateAsync("MyState");
}
Осталось ли что-нибудь, что можно удалить только явным удалением?
OnDeactivateAsync
при перемещении субъекта на другой узел? Если это так, то это, вероятно, не очень хороший подход. - person Dismissile   schedule 25.07.2017