将事件传播到配置的入口插件
项目描述
一个异步消息入口系统。 evbus 是大型项目的应用合并组件。事件被放入代理队列。监听器监视代理队列并将事件传播到配置的入口队列。
安装
从pypi安装
pip install pop-evbus
使用测试库本地安装
$ git clone git@gitlab.com:vmware/idem/evbus.git
$ pip install -e evbus -r evbus/requirements/test.in
触发事件
有两个函数可以将事件放入代理队列:put 和 put_nowait 它们的唯一区别是 put 是异步的,而 put_nowait 是同步的。两者都接受 routing_key、body 和 profile。
routing_key
此选项被转发到入口插件的 publish 函数。某些消息队列本身接受 routing_key 选项,某些则需要为命名的 routing_key 在消息队列上打开一个通道。实现此选项以适应封装的消息队列是入口插件的责任。
body
当事件体被放入evbus代理队列时,由evbus代理进行序列化。体可以是一个可序列化的对象。可以通过设置 hub.serialize.PLUGIN 为要使用的插件名称来配置序列化器。
配置文件
配置的配置文件格式如下
provider:
profile_name:
profile_data:
对于代理的 put 和 put_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 查看哈希值)
关闭
pop-evbus-7.0.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 967eefc2bc46df1480f89bf2083a32d93ecc6ed5e7378587a73bfeae786bd168 |
|
MD5 | fc612e3043806111ed4e64916dbd68af |
|
BLAKE2b-256 | f006ad0c597fea2bd94f1059647e7c5f012378bbb8d1bf40e3452243e13a591c |
关闭
pop_evbus-7.0.1-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 17d7ae6080e2b5e392ae19e3fc42e6d7dd42c0e46a475d80878f7e5efe225fba |
|
MD5 | d492abdafb97222641f7b22e4feb3eb3 |
|
BLAKE2b-256 | 6dbe8683478870185d991c9c0944d7746c44302dc94a86fcec9cd4023822e724 |