fedmsg的实时feed
fmn-sse的Python项目详细描述
fmn是一系列系统,用于管理由 联邦消息总线fedmsg。
fmn服务器发送事件服务器允许用户实时查看fedmsg提要 使用[服务器发送的事件](https://html.spec.whatwg.org/multipage/comms.html#server-sent-events)。 它依赖于一个服务来为它填充rabbitmq消息队列。通常,这是 完成了fmn核心服务。
##安装
要直接从pypi获取fmn.sse,可以使用pip:
` pip install fmn.sse `
如果您使用的是Fedora,则可以使用DNF安装它:
` sudo dnf install python-fmn-sse `
如果您使用的是CentOS 7,则可以使用Yum:
` sudo yum install python-fmn-sse `
##开发环境
要设置开发环境,可以使用vagrant来提供 一个虚拟机并自动配置它,或者您可以手动设置 环境。
###流浪汉
建立一个开发环境最简单的方法是与流浪汉一起。参考 到[fmn repository](https://github.com/fedora-infra/fmn)中获取vagrantfile 以及如何设置流浪者的说明。
###手动
一。安装系统依赖项。对于Fedora: ` sudo dnf install python python-develpython3-develpython-virtualenvwrapper \ rabbitmq-serverpython-pip gcc libffi-developenssl-develzeromq-devel `
2.安装python依赖项: ` pip install -r requirements.txt `
三。安装fmn.sse包: ` pip install -e . `
##运行
一。确保rabbitmq正在运行: ` sudo systemctl start rabbitmq-server `
2.启动SSE服务器: ` twistd -n-l - -y usr/share/fmn.sse/server.tac `
三。确保服务器可用。这将返回http 404: ` curl -vhttp://localhost:8080/ `
##测试数据
` workon sse-py2 pip install pytz python dev-data.py `
##手动测试
sse_webserver.pycurl对我来说似乎工作正常curl http://localhost:8080/user/bob
和/或
在浏览器中打开sse_test_subscriber.html并查看js控制台
##运行单元测试 ` workon sse-py2 python setup.py test `
覆盖范围
` workon sse-py2 pip install -rrequirements-test.txt py.test --cov=fmn tests/ `
###常见问题
问:我无法用pika连接rabbitmq
A:确保运行rabbitmqsudo systemctl start rabbitmq server
问:我得到以下错误 ` pika.exceptions.ChannelClosed: (406, "PRECONDITION_FAILED - inequivalent arg 'x-message-ttl' for queue 'skrzepto.id.fedoraproject.org' in vhost '/': received '60000' but current is '86400000'") `
A:您把队列设置为一个不相同的TTL。您需要匹配ttl或删除队列并重试。
进入http://localhost:15672/并删除队列。假设您启用了管理插件https://www.rabbitmq.com/management.html
问:卷曲上没有显示任何内容
A:再等几秒钟,显示数据需要一点时间。如果更多的话 而不是一分钟检查队列是否通过web ui有数据http://localhost:15672/