Ta bort Reliable Actors och deras tillstånd
Skräpinsamling av inaktiverade aktörer rensar bara aktörsobjektet, men det tar inte bort data som lagras i en aktörs state manager. När en aktör återaktiveras görs dess data återigen tillgängliga för den via State Manager. I fall där aktörer lagrar data i State Manager och inaktiveras men aldrig återaktiveras kan det vara nödvändigt att rensa deras data.
Aktörstjänsten tillhandahåller en funktion för att ta bort aktörer från en fjärruppringare:
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);
Att ta bort en aktör har följande effekter beroende på om aktören för närvarande är aktiv eller inte:
- Aktiv aktör
- Aktören tas bort från listan över aktiva aktörer och inaktiveras.
- Dess tillstånd tas bort permanent.
- Inaktiv aktör
- Dess tillstånd tas bort permanent.
En aktör kan inte anropa borttagning på sig själv från någon av sina aktörsmetoder eftersom aktören inte kan tas bort när den körs i en aktörsanropskontext, där körningen har fått ett lås runt aktörsanropet för att framtvinga enkeltrådad åtkomst.
Mer information om Reliable Actors finns i följande: