通过网络创建软件总线的消息代理

ReactOBus的Python项目详细描述


Build StatusCoverage StatusCode Health

反应物

reactobus是一个消息代理,它帮助在 网络和对一些信息的反应。

功能

reactobus能够:

  • 从不同来源收集事件(作为网络消息)
  • 发布事件流
  • 将事件存储在数据库中
  • 当事件符合某些条件时,启动特定命令

在不久的将来,reactobus将能够:

  • 筛选出一些事件
  • 动态修改事件格式

使用reactobus

要求

众所周知,reactobus在linux下与python3.4和python3.5一起工作。

这取决于(请参见requirements.txt):

  • PYZMQ
  • 皮亚姆
  • sqlalchemy(如果希望将事件存储在数据库中)
  • 设置程序标题

安装

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:输入流列表
  • outputs:输出流列表
  • core:内部套接字的配置
  • 反应器:反应物的反应部分
  • db:数据库配置

除了coreinputs之外的所有键都是可选的。如果可选键 在配置中找不到,相应的模块将不会 加载。

消息格式

目前,reactobus只接受一种类型的消息。这个 消息应该是具有以下含义的多部分zmq消息:

  • 主题
  • uuid(由python中的uuid.uuid1()生成)
  • datetime生成消息时(isoformat)
  • 发送进程或用户的用户名
  • data作为json

测试反应物

为了运行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
[...]

每次推送时,测试和覆盖率的计算日期为:

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java FirebaseInstanceId。getInstance()始终为空   linux Java执行文件错误   javaspringboot:如何使用Ajax在springboot和Thymeleaf中创建进度条?   java禁用在安卓上使用传单时启用setJavaScriptEnabled   java如何在主体中发布原始类型JSON数据?   消除JAVA While循环中的额外输出   如何在java中直接将基本数据类型分配给自定义类   java为什么addNode()方法返回编译错误“类型中的方法…不适用于参数…”,我该如何修复它?   java惰性合成可观察对象   eclipse Java Blackberry位图单击   java Android:AsyncTask对象[]无法在doInBackground中强制转换   java有没有办法重构或改进这段代码?   java如何使用系统以十六进制打印字节。出来普林顿?   多线程如何在我的java聊天室中调试“java.net.UnknownHostException”?   java如何从Google App Engine下载应用程序源文件   java如何在Spring Data Mongo的聚合$group中使用类似$dateToString   java IBM websphere application server未在MyEclipse8中启动。0