你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
ILeaseManager 接口
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
如果希望将 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) |
使用提供的租约中的信息更新存储区。 当前必须保留租约才能更新它。 如果租约已被盗、过期或解除,则无法更新。 更新应在执行更新之前续订租约,以避免在此过程中到期。 |