async def
can be used in place of the @gen.coroutine
decorator.
Inside a function defined with async def
, use await
instead of
yield
to wait on an asynchronous operation. Coroutines defined with
async/await will be faster than those defined with @gen.coroutine
and
yield
, but do not support some features including .Callback
/.Wait
or
the ability to yield a Twisted Deferred
.更多的请看:http://www.tornadoweb.org/en/latest/releases/next.html
不知道 asyncio 的库是不是可以直接用在 Tornado 上面了,如果可以我就升到 3.5 了....
1
aliuwr 2015-10-19 18:17:52 +08:00
Python 3.5 感觉好远
|
2
janxin OP @aliuwr 之前一直停留在 2.7 ,之前觉得 yield from 这个实在是不优雅,不过有 async/await 要好很多了
|
3
echo1937 2015-10-19 19:51:20 +08:00
还在 3.43,有先行者吗?
|
4
chengzhoukun 2015-10-19 19:56:18 +08:00
JS 也快支持了
|
5
Feiox 2015-10-19 20:07:25 +08:00
@echo1937 我们已经开始实验 3.5 了,因为现在的项目使用了一些 asyncio 。其实对我们更有吸引力的是 typing 这个标准库 ~ 已经准备大刀阔斧的迁移了。
话说, PHP7 Node 都配备了 JIT , CPython 何时来拯救我们 ~ |
7
Feiox 2015-10-19 20:15:26 +08:00
@echo1937 一个不太要求速度的爬虫,一些业务逻辑,还有几个内部使用的 Py 库(处理抽象业务逻辑的)。主要还是和 Web 业务、文本数据的处理有关。
|
8
PythonAnswer 2015-10-19 20:49:06 +08:00
感觉 tornado 又要来一波爆发了.
django 之类的不知道什么时候才能引入 async await |
9
fy 2015-10-19 22:14:33 +08:00
|
10
janxin OP @PythonAnswer django 本来就是同步模型,跟异步关系应该不大,即使引入范围也不会大的
|