subscriber

class litestar.channels.subscriber.Subscriber

基类:object

订阅频道上发布的事件流的包装器

__init__(plugin: ChannelsPlugin, max_backlog: int | None = None, backlog_strategy: BacklogStrategy = 'backoff') None
put_nowait(item: bytes | None) bool

将一项放入订阅者的流中,无需等待

async iter_events() AsyncGenerator[bytes, None]

遍历事件流。如果没有可用项,则阻塞直到有项可用。

run_in_background(on_event: Callable[[bytes], Awaitable[Any]], join: bool = True) AsyncGenerator[None, None]

在后台启动一个任务,将订阅者流中的事件在可用时发送至 socket。退出时,该任务将阻止流接收新事件,并等待当前已排队的全部事件处理完成。如果上下文因异常而退出,任务将立即被取消。 Args: on_event: 用于对每个事件调用事件数据的回调函数 join: 如果为 True,则在停止工作线程前等待流中的所有项目处理完成。请注意,上下文内发生的错误将始终导致工作线程立即被取消

property is_running: bool

返回发送任务是否正在运行

async stop(join: bool = False) None

停止一个之前通过 run_in_background() 启动的任务。如果任务尚未完成,它将被取消并等待其结束。 Args: join: 如果为 True,则在停止任务前等待所有项目处理完毕。