跳转到主要内容

将事件传播到配置的入口插件

项目描述

一个异步消息入口系统。 evbus 是大型项目的应用合并组件。事件被放入代理队列。监听器监视代理队列并将事件传播到配置的入口队列。

安装

从pypi安装

pip install pop-evbus

使用测试库本地安装

$ git clone git@gitlab.com:vmware/idem/evbus.git
$ pip install -e evbus -r evbus/requirements/test.in

触发事件

有两个函数可以将事件放入代理队列:putput_nowait 它们的唯一区别是 put 是异步的,而 put_nowait 是同步的。两者都接受 routing_keybodyprofile

routing_key

此选项被转发到入口插件的 publish 函数。某些消息队列本身接受 routing_key 选项,某些则需要为命名的 routing_key 在消息队列上打开一个通道。实现此选项以适应封装的消息队列是入口插件的责任。

body

当事件体被放入evbus代理队列时,由evbus代理进行序列化。体可以是一个可序列化的对象。可以通过设置 hub.serialize.PLUGIN 为要使用的插件名称来配置序列化器。

配置文件

配置的配置文件格式如下

provider:
  profile_name:
      profile_data:

对于代理的 putput_nowait 函数的 profile 参数指定了应使用哪个 profile_name 来触发事件。如果没有指定配置文件,将使用名为“default”的配置文件。可以有多个具有相同配置文件名称的提供者,事件将被转发到所有具有匹配配置文件名称的提供者。根据 profile 生成一个上下文(ctx),该上下文将被发送到基于 profile 的适当入口插件的发布函数。

完整示例

异步put

async def my_func(hub):
    await hub.evbus.broker.put(
        routing_key="channel", body={"message": "event content"}, profile="default"
    )

同步put

def my_func(hub):
    hub.evbus.broker.put_nowait(
        routing_key="channel", body={"message": "event content"}, profile="default"
    )

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。

源分布

pop-evbus-7.0.1.tar.gz (12.2 kB 查看哈希值)

上传时间

构建分布

pop_evbus-7.0.1-py3-none-any.whl (12.6 kB 查看哈希值)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面