Partager via


ILeaseManager Interface

Définition

Si vous souhaitez avoir des baux de magasin EventProcessorHost ailleurs que stockage Azure, vous pouvez écrire votre propre gestionnaire de baux à l’aide de cette interface.

Les gestionnaires de stockage Azure utilisent le même stockage pour le bail et les points de contrôle, de sorte que les deux interfaces sont implémentées par la même classe. Vous êtes libre de faire la même chose si vous disposez d’un magasin unifié pour les deux types de données.

Cette interface ne spécifie pas les méthodes d’initialisation, car nous n’avons aucun moyen de savoir quelles informations votre implémentation aura besoin.

public interface ILeaseManager
type ILeaseManager = interface
Public Interface ILeaseManager

Propriétés

LeaseDuration

Principalement utile pour les tests.

LeaseRenewInterval

Permet à une implémentation du gestionnaire de baux de spécifier à PartitionManager la fréquence à laquelle elle doit analyser les baux et les renouveler. Pour redistribuer les baux en temps opportun après qu’un hôte cesse de fonctionner, nous recommandons un intervalle relativement court, par exemple dix secondes. De toute évidence, il doit être inférieur à la moitié de la durée du bail, afin d’éviter l’expiration accidentelle.

Méthodes

AcquireLeaseAsync(Lease)

Acquérir le bail sur la partition souhaitée pour cet EventProcessorHost.

Notez qu’il est légal d’acquérir un bail qui appartient déjà à un autre hôte. Le vol de bail est la façon dont les partitions sont redistribuées au démarrage d’hôtes supplémentaires.

CreateLeaseIfNotExistsAsync(String)

Créez dans le magasin les informations de bail pour la partition donnée, si elle n’existe pas. Ne rien faire s’il existe déjà dans le magasin.

CreateLeaseStoreIfNotExistsAsync()

Créez le magasin de baux s’il n’existe pas, ne rien faire s’il existe.

DeleteLeaseAsync(Lease)

Supprimez les informations de bail pour la partition donnée du magasin. S’il n’existe aucun bail stocké pour la partition donnée, cela est traité comme une réussite.

DeleteLeaseStoreAsync()

Non utilisé par EventProcessorHost, mais une fonction pratique à avoir pour les tests.

GetAllLeasesAsync()

Retourne les informations de bail pour toutes les partitions. Une implémentation classique peut simplement appeler GetLeaseAsync() sur toutes les partitions.

GetLeaseAsync(String)

Retourne les informations de bail pour la partition spécifiée. Peut retourner null si aucun bail n’a été créé dans le magasin pour la partition spécifiée.

LeaseStoreExistsAsync()

Le magasin de baux existe-t-il ?

ReleaseLeaseAsync(Lease)

Abandonnez un bail actuellement détenu par cet hôte.

Si le bail a été volé ou a expiré, sa libération est inutile et échouera en cas de tentative.

RenewLeaseAsync(Lease)

Renouvelez un bail actuellement détenu par cet hôte.

Si le bail a été volé, expiré ou libéré, il n’est pas possible de le renouveler. Vous devrez appeler getLease(), puis acquireLease() à nouveau.

UpdateLeaseAsync(Lease)

Mettez à jour le magasin avec les informations contenues dans le bail fourni.

Il est nécessaire de détenir actuellement un bail afin de le mettre à jour. Si le bail a été volé, expiré ou libéré, il ne peut pas être mis à jour. La mise à jour doit renouveler le bail avant d’effectuer la mise à jour pour éviter l’expiration du bail pendant le processus.

S’applique à