在Tornado中如何与RabbitMQ通信(Pika客户端)

2013-07-09 10:31:51 +08:00
 llbgurs
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函数呢?
7616 次点击
所在节点    Python
6 条回复
binux
2013-07-09 11:00:41 +08:00
llbgurs
2013-07-09 11:11:20 +08:00
@binux 我的问题是怎么把request的data publish到rabbitmq中,不是怎么消费哦
binux
2013-07-09 11:25:38 +08:00
@llbgurs 有什么区别?你的问题不就是两个ioloop怎么结合在一起嘛,无论pika是不是consumer,它都要借助一个connection。问题不过是用谁的罢了
llbgurs
2013-07-09 11:59:38 +08:00
@binux 那怎么结合呢? 而且怎么把request data参数给publish函数
binux
2013-07-09 12:08:11 +08:00
@llbgurs ioloop结合例子上面有了,用tornado adapter做connection之后,ioloop只要启动一次就可以了。request data直接转给publish不就好了
llbgurs
2013-07-10 09:34:07 +08:00
@binux publish方法是事件驱动的,怎么把data传给它? 还有如果保持长链接呢?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/75207

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX