Usuń usługi Reliable Actors i jej stanu
Odzyskiwanie pamięci dezaktywowanych aktorów powoduje tylko wyczyszczenie obiektu aktora, ale nie powoduje usunięcia danych przechowywanych w menedżerze stanu aktora. Gdy aktor zostanie ponownie aktywowany, jego dane są ponownie udostępniane za pośrednictwem Menedżera stanu. W przypadkach, gdy aktorzy przechowują dane w menedżerze stanu i są dezaktywowani, ale nigdy nie są uaktywniane, może być konieczne wyczyszczenie danych.
Usługa aktora udostępnia funkcję usuwania aktorów ze zdalnego obiektu wywołującego:
ActorId actorToDelete = new ActorId(id);
IActorService myActorServiceProxy = ActorServiceProxy.Create(
new Uri("fabric:/MyApp/MyService"), actorToDelete);
await myActorServiceProxy.DeleteActorAsync(actorToDelete, cancellationToken)
ActorId actorToDelete = new ActorId(id);
ActorService myActorServiceProxy = ActorServiceProxy.create(
new Uri("fabric:/MyApp/MyService"), actorToDelete);
myActorServiceProxy.deleteActorAsync(actorToDelete);
Usunięcie aktora ma następujący wpływ w zależności od tego, czy aktor jest obecnie aktywny:
-
Aktywny aktor
- Aktor jest usuwany z listy aktywnych aktorów i jest dezaktywowany.
- Jego stan jest trwale usuwany.
-
Nieaktywny aktor
- Jego stan jest trwale usuwany.
Aktor nie może wywołać usunięcia samego siebie z jednej z metod aktora, ponieważ aktor nie może zostać usunięty podczas wykonywania w kontekście wywołania aktora, w którym środowisko uruchomieniowe uzyskało blokadę wokół wywołania aktora w celu wymuszenia dostępu jednowątkowego.
Aby uzyskać więcej informacji na temat elementów Reliable Actors, przeczytaj następujące informacje:
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla