1

我知道 AsyncIO WSGI 插件仍在创建过程中(http://uwsgi-docs.readthedocs.org/en/latest/asyncio.html)。我只是在考虑在现有 Web 项目中使用它的可行性。

似乎第一个问题是在哪里管理事件循环。WSGI 请求是全部在单个线程上完成的,还是它们自己的线程?

我想使用它的一种方法是,如果单个请求具有可以以非阻塞方式执行的多个任务,那可能很有用。例如,如果一个请求需要发出并从网络上的另一个位置检索多个文件。您可以在请求中创建一个事件循环,以便更有效地执行集合非阻塞操作。

这是目前在现有 Web 项目中真正利用 AsyncIO 的唯一方法吗?

4

1 回答 1

1

您可以像这样将阻塞任务“转换”为非阻塞任务,例如:

我建议这样做: https ://docs.python.org/3/library/asyncio-eventloop.html#executor

我有一个监听 twitter 提要的函数,函数“提及”,我在执行程序中运行它,

@asyncio.coroutine
def boucle_un():
    while True:
        print("debut du un")
        value = t.next()
        future1 = loop.run_in_executor(None, mention,20, value)
        response1 = yield from future1
        yield from asyncio.sleep(5)
        print("fin du un")
于 2014-08-27T15:11:13.760 回答