在pika中使用tornado协程

原创
2016/07/30 09:36
阅读数 693

pika中的例子写的很差,充满了回调,看的人头痛,既不符合python的开发原则,也不符合tornado的coroutine风格。于是做了一个非常简单的wrapper:

@gen.coroutine
def get_connection(url):
    result=[]

    def on_open(con):
        result.append(con)

    def on_error(e):
        raise Exception(str(e))

    adapters.TornadoConnection(
        url,
        on_open,
        on_error
    )

    while len(result)==0:
        yield gen.sleep(0.01)
    raise gen.Return(result[0])

这样,你就可以直接yield了。感觉直观,简单了很多。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部