在服务之间保持内容同步。或者简单地将内容联合到多个服务中。基于异步。
livebridge的Python项目详细描述
DPA Newslab提供的LiveBridge
当一位新的美国总统当选或一场来历不明的持续攻击让美国保持清醒时,数百万用户阅读dpa-Live更新。我们努力将这些更新实时交付给客户选择的任何发布系统。所以我们开发了这个开源软件,作为由Google DNI Fund资助的项目的一部分。阅读Introducing Live Coverage Ecosystem了解更多详细信息。
我们已经在生产中使用它,在dpa新闻编辑室向使用ScribbleLive服务的媒体客户提供使用Sourcefabric’s Liveblog生成的内容。
功能
- 通过不同的服务保持内容同步。
- 实时将一个源与多个目标联合。
- crud-通过不同的服务创建、更新、删除资源。
- 使用plugins 可扩展到所有类型的服务
- 用于通过方便的Web前端控制桥梁运行的Web用户界面。
- 用于控制网桥的web api。
- 作为环境变量的服务凭据。
- 支持的存储后端:mongodb、dynamodb、mysql、postgresql、mssql、oracle等
- await/async为基础,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_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/
插件
有几个源和目标可用作plugins。目前提供以下插件:
- Liveblog-提供一个LiveBlog LiveTicker作为源代码。
- Scribblelive-提供scribblelive事件流作为目标。还提供从liveblog到scribblelive的converter。
- Slack-将空闲通道作为源和目标提供。还提供从liveblog到scribblelive的converter。
- Tickaroo-提供一个tickaroo标记器作为目标。
可以编写自己的服务插件,并通过PyPI将它们作为python模块提供给livebridge。 请参阅https://github.com/dpa-newslab/livebridge-slack作为示例插件。
Tutorial: How to build a Livebridge plugin
开发
见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/
^必须安装{a27}。在上面的示例中,测试覆盖率的html摘要保存在./htmlcov/中。
许可证
版权所有2016-2018 DPA Infocom GmbH
Apache许可证,版本2.0-有关详细信息,请参见许可证