Freigeben über


ILeaseManager Schnittstelle

Definition

Wenn Sie EventProcessorHost-Speicherleasings an einer anderen Stelle als Azure Storage wünschen, können Sie über diese Schnittstelle Ihren eigenen Lease-Manager schreiben.

Die Azure Storage-Manager verwenden denselben Speicher sowohl für Lease als auch für Prüfpunkte, sodass beide Schnittstellen von derselben Klasse implementiert werden. Sie können dasselbe tun, wenn Sie über einen einheitlichen Speicher für beide Datentypen verfügen.

Diese Schnittstelle gibt keine Initialisierungsmethoden an, da wir nicht wissen können, welche Informationen Ihre Implementierung benötigt.

public interface ILeaseManager
type ILeaseManager = interface
Public Interface ILeaseManager

Eigenschaften

LeaseDuration

Meist nützlich für Tests.

LeaseRenewInterval

Ermöglicht einer Lease-Manager-Implementierung, für PartitionManager anzugeben, wie oft Leases überprüft und erneuert werden sollen. Um Leases nach Beendigung des Betriebs eines Hosts rechtzeitig zu verteilen, empfehlen wir ein relativ kurzes Intervall, z. B. zehn Sekunden. Natürlich sollte es weniger als die Hälfte der Leaselänge betragen, um einen versehentlichen Ablauf zu verhindern.

Methoden

AcquireLeaseAsync(Lease)

Rufen Sie die Lease für die gewünschte Partition für diesen EventProcessorHost ab.

Beachten Sie, dass es legal ist, eine Lease zu erwerben, die sich bereits im Besitz eines anderen Hosts befindet. Lease-Stealing ist, wie Partitionen neu verteilt werden, wenn zusätzliche Hosts gestartet werden.

CreateLeaseIfNotExistsAsync(String)

Erstellen Sie im Speicher die Leaseinformationen für die angegebene Partition, falls sie nicht vorhanden sind. Nichts tun, wenn es bereits im Store vorhanden ist.

CreateLeaseStoreIfNotExistsAsync()

Erstellen Sie den Leasespeicher, wenn er nicht vorhanden ist, und tun Sie nichts, wenn er vorhanden ist.

DeleteLeaseAsync(Lease)

Löschen Sie die Leaseinformationen für die angegebene Partition aus dem Speicher. Wenn keine gespeicherte Lease für die angegebene Partition vorhanden ist, wird dies als erfolgreich behandelt.

DeleteLeaseStoreAsync()

Wird nicht von EventProcessorHost verwendet, aber eine praktische Funktion zum Testen.

GetAllLeasesAsync()

Gibt die Leaseinformationen für alle Partitionen zurück. Eine typische Implementierung könnte einfach GetLeaseAsync() auf allen Partitionen aufrufen.

GetLeaseAsync(String)

Gibt die Leaseinformationen für die angegebene Partition zurück. Kann NULL zurückgeben, wenn keine Lease im Speicher für die angegebene Partition erstellt wurde.

LeaseStoreExistsAsync()

Ist der Leasespeicher vorhanden?

ReleaseLeaseAsync(Lease)

Geben Sie eine Lease auf, die derzeit von diesem Host gehalten wird.

Wenn die Lease gestohlen wurde oder abgelaufen ist, ist die Freigabe unnötig und schlägt fehl, wenn versucht wird.

RenewLeaseAsync(Lease)

Verlängern Sie eine Lease, die derzeit von diesem Host gehalten wird.

Wenn der Mietvertrag gestohlen oder abgelaufen oder freigegeben wurde, ist es nicht möglich, ihn zu verlängern. Sie müssen getLease() und dann erneut acquireLease() aufrufen.

UpdateLeaseAsync(Lease)

Aktualisieren Sie den Speicher mit den Informationen in der bereitgestellten Lease.

Es ist erforderlich, eine Lease zu halten, um sie zu aktualisieren. Wenn die Lease gestohlen oder abgelaufen oder freigegeben wurde, kann sie nicht aktualisiert werden. Das Aktualisieren sollte die Lease vor dem Ausführen des Updates verlängern, um das Ablaufen der Lease während des Prozesses zu vermeiden.

Gilt für: