首页
注册
登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请
登录
推荐学习书目
›
Learn Python the Hard Way
Python Sites
›
PyPI
- Python Package Index
›
http://diveintopython.org/toc/index.html
›
Pocoo
值得关注的项目
›
PyPy
›
Celery
›
Jinja2
›
Read the Docs
›
gevent
›
pyenv
›
virtualenv
›
Stackless Python
›
Beautiful Soup
›
结巴中文分词
›
Green Unicorn
›
Sentry
›
Shovel
›
Pyflakes
›
pytest
Python 编程
›
pep8 Checker
Styles
›
PEP 8
›
Google Python Style Guide
›
Code Style from The Hitchhiker's Guide
V2EX
›
Python
在Tornado中如何与RabbitMQ通信(Pika客户端)
llbgurs
·
linbo
·
2013-07-09 10:31:51 +08:00
· 7715 次点击
这是一个创建于 4095 天前的主题,其中的信息可能已经有所发展或是发生改变。
Pika客户端提供Tornado的Adapter,生产的例子是http://pika.readthedocs.org/en/0.9.13/examples/asynchronous_publisher_example.html
但是如何在Tornado中使用Pika呢,比如最简单的把tornado接收到的请求,publish到rabbitmq当中。
1.
看pika的例子,connection会有一个ioloop,
self._connection = pika.SelectConnection(pika.URLParameters(self._url),
self.on_connection_open)
self._connection.ioloop.start()
但是tornado自己也有一个ioloop,
tornado.ioloop.IOLoop.instance().start()
这两个ioloop如何结合在一起呢?
2. 因为都是事件触发的,如何把request参数传递给publish函数呢?
ioloop
self
connection
6 条回复
•
1970-01-01 08:00:00 +08:00
1
binux
2013-07-09 11:00:41 +08:00
https://pika.readthedocs.org/en/0.9.13/examples/tornado_consumer.html
2
llbgurs
OP
2013-07-09 11:11:20 +08:00
@
binux
我的问题是怎么把request的data publish到rabbitmq中,不是怎么消费哦
3
binux
2013-07-09 11:25:38 +08:00
@
llbgurs
有什么区别?你的问题不就是两个ioloop怎么结合在一起嘛,无论pika是不是consumer,它都要借助一个connection。问题不过是用谁的罢了
4
llbgurs
OP
2013-07-09 11:59:38 +08:00
@
binux
那怎么结合呢? 而且怎么把request data参数给publish函数
5
binux
2013-07-09 12:08:11 +08:00
@
llbgurs
ioloop结合例子上面有了,用tornado adapter做connection之后,ioloop只要启动一次就可以了。request data直接转给publish不就好了
6
llbgurs
OP
2013-07-10 09:34:07 +08:00
@
binux
publish方法是事件驱动的,怎么把data传给它? 还有如果保持长链接呢?
关于
·
帮助文档
·
博客
·
API
·
FAQ
·
实用小工具
·
5064 人在线
最高记录 6679
·
Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 32ms ·
UTC 07:27
·
PVG 15:27
·
LAX 00:27
·
JFK 03:27
Developed with
CodeLauncher
♥ Do have faith in what you're doing.