Freigeben über


Grain Klasse

Definition

Die abstrakte Basisklasse für alle Grain-Klassen.

public abstract class Grain : Orleans.Runtime.IAddressable
public abstract class Grain : Orleans.ILifecycleParticipant<Orleans.Runtime.IGrainLifecycle>, Orleans.Runtime.IAddressable
public abstract class Grain : Orleans.IGrainBase, Orleans.Runtime.IAddressable
type Grain = class
    interface IAddressable
type Grain = class
    interface IAddressable
    interface ILifecycleParticipant<IGrainLifecycle>
type Grain = class
    interface IGrainBase
    interface IAddressable
Public MustInherit Class Grain
Implements IAddressable
Public MustInherit Class Grain
Implements IAddressable, ILifecycleParticipant(Of IGrainLifecycle)
Public MustInherit Class Grain
Implements IAddressable, IGrainBase
Vererbung
Grain
Abgeleitet
Implementiert

Konstruktoren

Grain()

Dieser Konstruktor sollte niemals aufgerufen werden. Wir machen sie verfügbar, damit Clientcode (Unterklassen von Grain) keinen Konstruktor hinzufügen muss. Clientcode sollte die GrainFactory-Eigenschaft verwenden, um einen Verweis auf ein Grain abzurufen.

Grain(IGrainContext, IGrainRuntime)

Grain-Implementierungen müssen diesen Konstruktor NICHT verfügbar machen, können dies aber auch tun. Dieser Konstruktor ist besonders nützlich für Komponententests, bei denen Testcode ein Grain erstellen und IGrainIdentity und IGrainRuntime durch Testdoppel (Mocks/Stubs) ersetzen kann.

Grain(IGrainIdentity, IGrainRuntime)

Grain-Implementierungen müssen diesen Konstruktor NICHT verfügbar machen, können dies aber auch tun. Dieser Konstruktor ist besonders nützlich für Komponententests, bei denen Testcode ein Grain erstellen und IGrainIdentity und IGrainRuntime durch Testdoppel (Mocks/Stubs) ersetzen kann.

Eigenschaften

GrainFactory

Ruft ein -Objekt ab, das für den Zugriff auf andere Grains verwendet werden kann. Null, wenn dieses Grain nicht einer Runtime zugeordnet ist, z. B. wenn es direkt für Komponententests erstellt wird.

GrainReference

Die abstrakte Basisklasse für alle Grain-Klassen.

IdentityString

Zeichenfolgendarstellung von Grains SiloIdentity, einschließlich Typ und Primärschlüssel.

RuntimeIdentity

Ein eindeutiger Bezeichner für das aktuelle Silo. Diese Zeichenfolge enthält keinen semantischen Inhalt, kann aber für die Protokollierung nützlich sein.

ServiceProvider

Ruft den von der Runtime verwalteten IServiceProvider ab. Null, wenn dieses Grain nicht einer Runtime zugeordnet ist, z. B. wenn es direkt für Komponententests erstellt wird.

Methoden

DeactivateOnIdle()

Deaktivieren Sie diese Aktivierung des Grains, nachdem der aktuelle Grain-Methodenaufruf abgeschlossen wurde. Dieser Aufruf markiert diese Aktivierung des aktuellen Grains, das am Ende der aktuellen Methode deaktiviert und entfernt werden soll. Der nächste Aufruf dieses Grains führt zu einer anderen zu verwendenden Aktivierung, was typischerweise bedeutet, dass eine neue Aktivierung automatisch von der Runtime erstellt wird.

DelayDeactivation(TimeSpan)

Verzögert die Deaktivierung dieser Aktivierung mindestens für die angegebene Zeitdauer. Ein positiver timeSpan Wert bedeutet "GC dieser Aktivierung für diesen Zeitraum verhindern". Ein negativer timeSpan Wert bedeutet" "Abbrechen der vorherigen Einstellung des DelayDeactivation-Aufrufs und Festlegen des Aktivierungsverhaltens basierend auf den regulären Aktivierungs-Garbage Collection-Einstellungen". Die DeactivateOnIdle-Methode würde jede aktuelle "Keep Alive"-Einstellung rückgängig machen/überschreiben, sodass dieses Grain sofort für die Deaktivierung verfügbar ist.

GetLogger()

Gibt ein Protokollierungsobjekt zurück, das der Code dieses Grains für die Ablaufverfolgung verwenden kann. Der Name der Protokollierung wird vom Namen der Grain-Klasse abgeleitet.

GetLogger(String)

Gibt ein Protokollierungsobjekt zurück, das der Code dieses Grains für die Ablaufverfolgung verwenden kann.

GetReminder(String)

Gibt eine zuvor registrierte Erinnerung zurück.

GetReminders()

Gibt eine Liste aller Erinnerungen zurück, die vom Grain registriert wurden.

GetStreamProvider(String)

Die abstrakte Basisklasse für alle Grain-Klassen.

GetStreamProviders()

Die abstrakte Basisklasse für alle Grain-Klassen.

MigrateOnIdle()

Startet den Versuch, dieses instance zu einem anderen Speicherort zu migrieren. Bei der Migration wird der aktuelle RequestContexterfasst, sodass er dem Placement Director der Aktivierung zur Verfügung gestellt wird, sodass er ihn bei der Auswahl eines neuen Standorts berücksichtigen kann. Die Migration erfolgt asynchron, wenn keine Anforderungen ausgeführt werden, und nicht, wenn der Platzierungsdirektor der Aktivierung keinen alternativen Speicherort auswählt.

OnActivateAsync()

Diese Methode wird am Ende des Vorgangs der Aktivierung eines Grains aufgerufen. Es wird aufgerufen, bevor Nachrichten an das Grain gesendet wurden. Für Grains mit deklariertem persistentem Zustand wird diese Methode aufgerufen, nachdem die State-Eigenschaft aufgefüllt wurde.

OnActivateAsync(CancellationToken)

Diese Methode wird am Ende des Vorgangs der Aktivierung eines Grains aufgerufen. Es wird aufgerufen, bevor Nachrichten an das Grain gesendet wurden. Für Grains mit deklariertem persistentem Zustand wird diese Methode aufgerufen, nachdem die State-Eigenschaft aufgefüllt wurde.

OnDeactivateAsync()

Diese Methode wird am Anfang des Prozesses der Deaktivierung eines Grains aufgerufen.

OnDeactivateAsync(DeactivationReason, CancellationToken)

Diese Methode wird am Anfang des Prozesses der Deaktivierung eines Grains aufgerufen.

Participate(IGrainLifecycle)

Die abstrakte Basisklasse für alle Grain-Klassen.

RegisterOrUpdateReminder(String, TimeSpan, TimeSpan)

Registriert eine dauerhafte, zuverlässige Erinnerung, um regelmäßige Benachrichtigungen (Erinnerungen) an das Grain zu senden. Das Grain muss die Orleans.IRemindable Schnittstelle implementieren, und Erinnerungen für dieses Grain werden an die ReceiveReminder Rückrufmethode gesendet. Wenn das aktuelle Grain deaktiviert wird, wenn der Timer ausgelöst wird, wird eine neue Aktivierung dieses Grains erstellt, um diese Erinnerung zu erhalten. Wenn bereits eine erinnerung mit demselben Namen vorhanden ist, wird diese Erinnerung mit dieser neuen Erinnerung überschrieben. Erinnerungen werden immer durch eine Aktivierung dieses Grains empfangen, auch wenn für dieses Grain mehrere Aktivierungen vorhanden sind.

RegisterTimer(Func<Object,Task>, Object, TimeSpan, TimeSpan)

Registriert einen Timer, um regelmäßige Rückrufe an dieses Grain zu senden.

UnregisterReminder(IGrainReminder)

Hebt die Registrierung einer zuvor registrierten Erinnerung auf.

Explizite Schnittstellenimplementierungen

IGrainBase.GrainContext

Die abstrakte Basisklasse für alle Grain-Klassen.

Erweiterungsmethoden

DeactivateOnIdle(IGrainBase)

Deaktivieren Sie diese Grain-Aktivierung, nachdem der aktuelle Grain-Methodenaufruf abgeschlossen wurde. Dieser Aufruf markiert diese Aktivierung des aktuellen Grains, das am Ende der aktuellen Methode deaktiviert und entfernt werden soll. Der nächste Aufruf dieses Grains führt zu einer anderen zu verwendenden Aktivierung, was typischerweise bedeutet, dass eine neue Aktivierung automatisch von der Runtime erstellt wird.

MigrateOnIdle(IGrainBase)

Startet den Versuch, dieses instance zu einem anderen Speicherort zu migrieren. Bei der Migration wird der aktuelle RequestContexterfasst, sodass er dem Placement Director der Aktivierung zur Verfügung gestellt wird, sodass er ihn bei der Auswahl eines neuen Standorts berücksichtigen kann. Die Migration erfolgt asynchron, wenn keine Anforderungen ausgeführt werden, und nicht, wenn der Platzierungsdirektor der Aktivierung keinen alternativen Speicherort auswählt.

AsReference(IAddressable, Type)

Gibt einen typisierten Verweis auf das bereitgestellte Grain zurück.

AsReference<TGrainInterface>(IAddressable)

Gibt einen typisierten Verweis auf das bereitgestellte Grain zurück.

BindGrainReference(IAddressable, IGrainFactory)

Bindet den Körnungsverweis an die bereitgestellte IGrainFactory.

Cast(IAddressable, Type)

Gibt einen typisierten Verweis auf das bereitgestellte Grain zurück.

Cast<TGrainInterface>(IAddressable)

Gibt einen typisierten Verweis auf das bereitgestellte Grain zurück.

GetGrainId(IAddressable)

Gibt die Grain-ID zurück, die dem angegebenen Grain entspricht.

GetPrimaryKey(IAddressable)

Gibt die Guid Darstellung eines körnigen Primärschlüssels zurück.

GetPrimaryKey(IAddressable, String)

Gibt die Guid Darstellung eines körnigen Primärschlüssels zurück.

GetPrimaryKeyLong(IAddressable)

Gibt die long Darstellung eines körnigen Primärschlüssels zurück.

GetPrimaryKeyLong(IAddressable, String)

Gibt die long Darstellung eines körnigen Primärschlüssels zurück.

GetPrimaryKeyString(IAddressable)

Gibt den string Primärschlüssel des Grains zurück.

IsPrimaryKeyBasedOnLong(IAddressable)

Gibt zurück, ob ein Teil des Primärschlüssels vom Typ longist.

GetReminder(Grain, String)

Gibt eine zuvor registrierte Erinnerung zurück.

GetReminder(IGrainBase, String)

Gibt eine zuvor registrierte Erinnerung zurück.

GetReminders(Grain)

Gibt eine Liste aller Erinnerungen zurück, die vom Grain registriert wurden.

GetReminders(IGrainBase)

Gibt eine Liste aller Erinnerungen zurück, die vom Grain registriert wurden.

RegisterOrUpdateReminder(Grain, String, TimeSpan, TimeSpan)

Registriert eine dauerhafte, zuverlässige Erinnerung, um regelmäßige Benachrichtigungen (Erinnerungen) an das Grain zu senden. Das Grain muss die Orleans.IRemindable Schnittstelle implementieren, und Erinnerungen für dieses Grain werden an die ReceiveReminder Rückrufmethode gesendet. Wenn das aktuelle Grain deaktiviert wird, wenn der Timer ausgelöst wird, wird eine neue Aktivierung dieses Grains erstellt, um diese Erinnerung zu erhalten. Wenn bereits eine erinnerung mit demselben Namen vorhanden ist, wird diese Erinnerung mit dieser neuen Erinnerung überschrieben. Erinnerungen werden immer durch eine Aktivierung dieses Grains empfangen, auch wenn für dieses Grain mehrere Aktivierungen vorhanden sind.

RegisterOrUpdateReminder(IGrainBase, String, TimeSpan, TimeSpan)

Registriert eine dauerhafte, zuverlässige Erinnerung, um regelmäßige Benachrichtigungen (Erinnerungen) an das Grain zu senden. Das Grain muss die Orleans.IRemindable Schnittstelle implementieren, und Erinnerungen für dieses Grain werden an die ReceiveReminder Rückrufmethode gesendet. Wenn das aktuelle Grain deaktiviert wird, wenn der Timer ausgelöst wird, wird eine neue Aktivierung dieses Grains erstellt, um diese Erinnerung zu erhalten. Wenn bereits eine erinnerung mit demselben Namen vorhanden ist, wird diese Erinnerung mit dieser neuen Erinnerung überschrieben. Erinnerungen werden immer durch eine Aktivierung dieses Grains empfangen, auch wenn für dieses Grain mehrere Aktivierungen vorhanden sind.

UnregisterReminder(Grain, IGrainReminder)

Hebt die Registrierung einer zuvor registrierten Erinnerung auf.

UnregisterReminder(IGrainBase, IGrainReminder)

Hebt die Registrierung einer zuvor registrierten Erinnerung auf.

GetStreamProvider(Grain, String)

Ruft den Streamanbieter mit dem angegebenen nameab.

GetStreamProvider(IGrainBase, String)

Ruft den Streamanbieter mit dem angegebenen nameab.

GetLogger(Grain)

Gibt ein Protokollierungsobjekt zurück, das der Code dieses Grains für die Ablaufverfolgung verwenden kann. Der Name der Protokollierung wird vom Namen der Grain-Klasse abgeleitet.

GetLogger(Grain, String)

Gibt ein Protokollierungsobjekt zurück, das der Code dieses Grains für die Ablaufverfolgung verwenden kann.

GetGrainStorage(Grain, IServiceProvider)

Rufen Sie den Speicheranbieter ab, der dem Grain-Typ zugeordnet ist.

Gilt für: