跨服务保持内容同步。或者只是将内容联合到多个服务。基于异步。
项目描述
dpa-newslab 的 Livebridge
Millions of users read dpa-Live updates when a new US president is elected or an ongoing attack of unknown origin keeps the nation awake. 我们努力将这些更新实时提供给客户选择的任何发布系统。因此,我们开发了这个开源软件,作为Google DNI Fund资助的项目的一部分。阅读介绍实时报道生态系统了解更多详细信息。
我们已经在生产中使用它,将使用Sourcefabric 的 Liveblog 在 dpa 新闻编辑室中制作的内容提供给使用ScribbleLive服务的媒体客户。
特征
- 在不同的服务上保持内容同步。
- 将一个源实时联合到各种目标。
- CRUD - 通过不同的服务创建、更新、删除资源。
- 可通过插件扩展为各种服务
- 用于通过方便的 Web 前端控制正在运行的网桥的 Web-UI。
- 用于控制网桥的 Web-API。
- 服务凭证作为环境变量。
- 支持的存储后端:MongoDB、DynamoDB、MySQL、PostgreSQL、MSSQL、Oracle 等
- 基于等待/异步,Python 3.5
- (非持久)队列,用于重试发布帖子。
- 专注于稳健性和稳定性
安装
pip3 install livebridge
Python >=3.5 是必需的。
有关详细信息,请参阅http://livebridge.readthedocs.io/en/stable/quickstart.html#installation。
设置
全局设置在livebridge/config.py中定义。这些值可以通过环境变量来设置。
有关可用的配置变量,请参阅http://livebridge.readthedocs.io/en/stable/quickstart.html#settings。
跑步
livebridge命令需要一个-control =参数(或者环境变量LB_CONTROLFILE * 或LB_DB_CONTROL_TABLE),以使用配置的网桥指定控制数据的位置。 --control可以是本地控制文件或s3上的远程控制文件。
- 带有本地控制文件
livebridge --control=/path/to/control.yaml
- 在 S3 上使用远程控制文件
livebridge --control=s3://bucketname/control.yaml
- 控制数据存储在数据库中
... LB_DB_CONTROL_TABLE=lb_control livebridge
有关详细信息,请参阅http://livebridge.readthedocs.io/en/stable/control.html 。
文档
http://livebridge.readthedocs.io/en/stable/
插件
有几个源和目标可作为插件使用。目前有以下插件可用:
- Liveblog - 提供 Liveblog liveticker 作为源。
- Scribblelive - 提供一个 Scribblelive 事件流作为目标。还提供从Liveblog到Scribblelive的转换器。
- Slack - 提供 Slack 通道作为源和目标。还提供从Liveblog和到Scribblelive的转换器。
- Tickaroo - 提供Tickaroo代码作为目标。
可以编写自己的服务插件,并通过PyPI将它们作为 Python 模块提供给livebridge。请参阅https://github.com/dpa-newslab/livebridge-slack作为示例插件。
发展
见http://livebridge.readthedocs.io/en/stable/developing.html
测试
Livebridge使用py.test和asynctest进行测试。
运行测试:
py.test -v tests/
使用测试覆盖率运行测试:
py.test -v --cov=livebridge --cov-report=html tests/
必须安装pytest-cov 。在上面的示例中,测试覆盖率的 html 摘要保存在./htmlcov/中。
执照
版权所有 2016-2018 dpa-infocom GmbH
Apache 许可证,版本 2.0 - 有关详细信息,请参阅许可证
项目详情
livebridge -0.27.0.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 8a97ec20abcbbb97d18ab5d3957fd6e41b9b5e29e71abe568f9fa76b31c3a5ed |
|
| MD5 | 1d6f49508af8d433471e87acc0120ebb |
|
| 布莱克2-256 | cc937739ddaf8ca3708335df47155cbf04a865421cfd24c35a769242295c1de8 |