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
llbgurs
V2EX  ›  Python

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

  •  
  •   llbgurs ·
    linbo · 2013-07-09 10:31:51 +08:00 · 7766 次点击
    这是一个创建于 4155 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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函数呢?
    6 条回复    1970-01-01 08:00:00 +08:00
    llbgurs
        2
    llbgurs  
    OP
       2013-07-09 11:11:20 +08:00
    @binux 我的问题是怎么把request的data publish到rabbitmq中,不是怎么消费哦
    binux
        3
    binux  
       2013-07-09 11:25:38 +08:00
    @llbgurs 有什么区别?你的问题不就是两个ioloop怎么结合在一起嘛,无论pika是不是consumer,它都要借助一个connection。问题不过是用谁的罢了
    llbgurs
        4
    llbgurs  
    OP
       2013-07-09 11:59:38 +08:00
    @binux 那怎么结合呢? 而且怎么把request data参数给publish函数
    binux
        5
    binux  
       2013-07-09 12:08:11 +08:00
    @llbgurs ioloop结合例子上面有了,用tornado adapter做connection之后,ioloop只要启动一次就可以了。request data直接转给publish不就好了
    llbgurs
        6
    llbgurs  
    OP
       2013-07-10 09:34:07 +08:00
    @binux publish方法是事件驱动的,怎么把data传给它? 还有如果保持长链接呢?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2396 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 02:00 · PVG 10:00 · LAX 18:00 · JFK 21:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.