你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

ILeaseManager 接口

定义

如果希望将 EventProcessorHost 存储租约放在 Azure 存储以外的某个位置,可以使用此接口编写自己的租约管理器。

Azure 存储管理器对租用和检查点使用相同的存储,因此这两个接口都由同一类实现。 如果为这两种类型的数据使用统一存储,则可以自由执行相同的操作。

此接口不指定初始化方法,因为我们无法知道你的实现将需要哪些信息。

public interface ILeaseManager
type ILeaseManager = interface
Public Interface ILeaseManager

属性

LeaseDuration

主要用于测试。

LeaseRenewInterval

允许租约管理器实现向 PartitionManager 指定它应扫描并续订租约的频率。 为了在主机停止运行后及时重新分配租约,建议使用相对较短的间隔,例如十秒。 显然,它应该小于租约长度的一半,以防止意外过期。

方法

AcquireLeaseAsync(Lease)

获取此 EventProcessorHost 所需分区上的租约。

请注意,获取已由另一个主机拥有的租约是合法的。 租用窃取是在启动其他主机时重新分发分区的方式。

CreateLeaseIfNotExistsAsync(String)

在存储中创建给定分区的租约信息(如果不存在)。 如果存储中已存在,则不执行任何操作。

CreateLeaseStoreIfNotExistsAsync()

如果租约存储不存在,则创建该存储;如果存在,则不执行任何操作。

DeleteLeaseAsync(Lease)

从存储区中删除给定分区的租约信息。 如果给定分区没有存储的租约,则被视为成功。

DeleteLeaseStoreAsync()

不由 EventProcessorHost 使用,而是用于测试的便捷函数。

GetAllLeasesAsync()

返回所有分区的租约信息。 典型的实现只需在所有分区上调用 GetLeaseAsync () 。

GetLeaseAsync(String)

返回指定分区的租约信息。 如果在指定分区的存储中未创建租约,则可以返回 null。

LeaseStoreExistsAsync()

租约存储是否存在?

ReleaseLeaseAsync(Lease)

放弃此主机当前持有的租约。

如果租约已被盗或已过期,则无需释放租约,如果尝试,将失败。

RenewLeaseAsync(Lease)

续订此主机当前持有的租约。

如果租约被盗、过期或解除,则无法续订。 必须调用 getLease () ,然后再次获取Lease () 。

UpdateLeaseAsync(Lease)

使用提供的租约中的信息更新存储区。

当前必须保留租约才能更新它。 如果租约已被盗、过期或解除,则无法更新。 更新应在执行更新之前续订租约,以避免在此过程中到期。

适用于