一个tornado+coroutine+yield的例子

一个简单的tornado+coroutine+yield的例子

tornado+coroutine+yield

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class MainHandler(tornado.web.RequestHandler):
    cond = None

    @tornado.gen.coroutine
    def test(self):
        print('a')
        a = 1
        self.cond = tornado.locks.Condition()
        yield self.cond.wait(timeout=datetime.timedelta(seconds=10))
        a = 2
        print('b')
        return a, 2

    @tornado.gen.coroutine
    def get(self):
        a, b = yield self.test()
        print(a, b)
        self.render("index.html")

这几个需要配合使用,使用得不好就可能会出现下面的错误:

1
2
3
AssertionError: yield from wasn't used with future
tornado.gen.BadYieldError: yielded unknown object
ValueError: not enough values to unpack (expected 2, got 0)

本文网址: https://pylist.com/topic/170.html 转摘请注明来源

Suggested Topics

Tornado 构建一个 Comet 应用

Comet -- 基于 HTTP 长连接、无须在浏览器端安装插件的“服务器推”技术为“Comet”,这里介绍用Tornado 构建一个 Comet 应用的经验。...

在128M的VPS上配置mysql+Tornado+Nginx笔记

最近 123systems http://goo.gl/2Q0X2 又推出一年$10的便宜 VPS,128M内存,可以用来学习。在这样的vps 上放一个博客或做反向代理绰绰有余,买下后尝试配一个mysql+Tornado+Nginx 环境。...

Tornado 搭建基于 WebSocket 的聊天服务

这年头 Python web 框架是有点泛滥了. 下面要介绍的是 facebook 的开源框架 tornado. 这东西比较简单, 而且自带 WebSocket 支持, 可以用它做个简单的聊天室. ...

Leave a Comment