构建异步网络应用:Tornado、Twisted 与 Celery 实战
1. Tornado 中的异步生成器与网络工具
1.1 异步生成器与协程
在 Tornado 中编写异步代码的另一种方式是使用协程。与使用回调函数处理响应不同,我们可以使用 yield 关键字来暂停和恢复执行。Tornado 2.1 引入了 tornado.gen.coroutine 模块,它为执行异步请求提供了一种模式。
以下是 tornado_request_async_coroutine.py 文件中的代码示例:
#!/usr/bin/python3
import tornado.ioloop
import tornado.web
import tornado.httpclient
class Handler(tornado.web.RequestHandler):
@tornado.web.asynchronous
@tornado.gen.coroutine
def get(self):
http_client = tornado.httpclient.AsyncHTTPClient()
response = yield tornado.gen.Task(http_client.fetch, "https://www.google.com/search?q=python")
self.write(response.body)
if __name__
超级会员免费看
订阅专栏 解锁全文
821

被折叠的 条评论
为什么被折叠?



