你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
ServiceBusSession 类
ServiceBusSession 用于管理会话状态和锁定续订。
请使用 ServiceBusReceiver 上的 属性 session
获取与接收方链接的相应 ServiceBusSession 对象,而不是直接实例化 ServiceBusSession 对象。
- 继承
-
azure.servicebus._servicebus_session.BaseSessionServiceBusSession
构造函数
ServiceBusSession(session_id: str, receiver: ServiceBusReceiver | ServiceBusReceiverAsync)
参数
- session_id
- receiver
示例
从接收方获取会话
async with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
session = receiver.session
方法
get_state |
获取会话状态。 如果未设置状态,则返回 None。 |
renew_lock |
续订会话锁。 必须定期执行此操作,才能在会话上保留锁定以继续处理消息。 锁丢失后,连接将关闭;无法续订过期的锁。 通过将会话注册到 azure.servicebus.aio.AutoLockRenewer 实例,还可以将此操作作为线程后台任务执行。 |
set_state |
设置会话状态。 |
get_state
获取会话状态。
如果未设置状态,则返回 None。
async get_state(*, timeout: float | None = None, **kwargs: Any) -> bytes
参数
返回
会话状态。
返回类型
示例
获取会话状态
async with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
session = receiver.session
session_state = await session.get_state()
renew_lock
续订会话锁。
必须定期执行此操作,才能在会话上保留锁定以继续处理消息。
锁丢失后,连接将关闭;无法续订过期的锁。
通过将会话注册到 azure.servicebus.aio.AutoLockRenewer 实例,还可以将此操作作为线程后台任务执行。
async renew_lock(*, timeout: float | None = None, **kwargs: Any) -> datetime
参数
返回
锁定设置为过期的 utc 日期/时间。
返回类型
示例
在会话锁过期之前续订会话锁
async with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
session = receiver.session
await session.renew_lock()
set_state
设置会话状态。
async set_state(state: str | bytes | bytearray | None, *, timeout: float | None = None, **kwargs: Any) -> None
参数
返回
回调的响应
返回类型
示例
设置会话状态
async with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
session = receiver.session
await session.set_state("START")