8.2. 创建持久订阅
持久订阅是远程服务器上代表消息接收器的一种状态。通常,当客户端关闭时,消息接收器会被丢弃。但是,由于持久订阅是永久的,客户端可以从它们分离,然后在以后重新连接。当客户端重新附加时,分离时收到的所有消息都可用。
持久订阅通过组合客户端容器 ID 和接收器名称组成订阅 ID 来唯一标识。这些必须具有稳定值,以便可以恢复订阅。
要创建持久订阅,请按照以下步骤执行:
将连接容器 ID 设置为 stable 值,如
client-1:container = Container(handler) container.container_id = "client-1"
container = Container(handler) container.container_id = "client-1"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置
durability和expiry_policy属性,将接收器源配置为持久性:class SubscriptionOptions(ReceiverOption): def apply(self, receiver): receiver.source.durability = Terminus.DELIVERIES receiver.source.expiry_policy = Terminus.EXPIRE_NEVERclass SubscriptionOptions(ReceiverOption): def apply(self, receiver): receiver.source.durability = Terminus.DELIVERIES receiver.source.expiry_policy = Terminus.EXPIRE_NEVERCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用稳定名称(如
sub-1)创建接收器,并应用源属性:event.container.create_receiver(conn, "notifications", name="sub-1", options=SubscriptionOptions())event.container.create_receiver(conn, "notifications", name="sub-1", options=SubscriptionOptions())Copy to Clipboard Copied! Toggle word wrap Toggle overflow
要从订阅中分离,使用 Receiver.detach() 方法。要终止订阅,使用 Receiver.close() 方法。
如需更多信息,请参阅 persistent -subscribe.py 示例。