跳转到主要内容

一个消息代理,用于在网络上创建软件总线

项目描述

Build Status Coverage Status Code Health

ReactOBus

ReactOBus是一个消息代理,帮助在网络中创建软件总线并响应某些消息。

功能

ReactOBus能够

  • 从不同的来源收集事件(作为网络消息)

  • 发布事件流

  • 将事件存储在数据库中

  • 当事件满足某些条件时启动特定命令

在不久的将来,ReactOBus将能够

  • 过滤掉某些事件

  • 动态修改事件格式

使用ReactOBus

要求

ReactOBus已知可以在Linux下与Python3.4和Python3.5一起工作。

它依赖于(请参阅 requirements.txt

  • pyzmq

  • pyYAML

  • SQLAlchemy(如果您希望将事件存储在数据库中)

  • setproctitle

安装

ReactOBus可在 pypi 上找到,并可以使用以下方式安装

pip install ReactOBus

默认情况下,pip 不会安装SQLAlchemy。如果需要,可以在之后手动安装或要求pip包含正确的ReactOBus变体

pip install ReactOBus[db]

还可以直接从源代码执行ReactOBus

git clone https://github.com/ivoire/ReactOBus.git
cd ReactOBus
virtualenv -p python3.5 venv
source venv/bin/activate
pip install -r requirements.txt
python reactobus --level DEBUG --conf share/examples/reactobus.yaml

配置

配置文件是一个YAML字典,包含

  • inputs:输入流列表

  • 输出:输出流列表

  • 核心:内部端口的配置

  • 反应器:ReactOBus的反应部分

  • 数据库:数据库配置

核心输入之外的所有键都是可选的。如果配置中找不到可选键,则相应的模块不会加载。

消息格式

目前,ReactOBus只接受一种类型的消息。消息应该是多部分ZMQ消息,具有以下含义

  • 主题

  • uuid(由Python中的uuid.uuid1()生成)

  • datetime消息生成时的日期和时间(isoformat格式)

  • username发送进程或用户的用户名

  • data作为JSON

测试ReactOBus

为了运行ReactOBus的自动测试,您必须安装py.test

pip install pytest

然后使用以下命令运行测试

py.test tests -v
[...]
tests/test_core.py::test_core PASSED
tests/test_db.py::test_run PASSED
tests/test_db.py::test_errors PASSED
[...]

在每次推送时,测试和覆盖率将在

项目详情


下载文件

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

源代码发行版

ReactOBus-0.2.tar.gz (23.3 kB 查看哈希

上传时间: 源代码

由以下支持