小编our*_*ord的帖子

Python asyncio任务收益率很低

我对如何asyncio在Python 3.4中使用该模块感到困惑.我有一个searching搜索引擎的API,并希望每个搜索请求可以并行或异步运行,这样我就不必等待一次搜索完成另一次搜索.

这是我的高级搜索API,用于使用原始搜索结果构建一些对象.搜索引擎本身正在使用某种asyncio机制,所以我不会打扰它.

# No asyncio module used here now
class search(object):
  ...
  self.s = some_search_engine()
  ...
  def searching(self, *args, **kwargs):
    ret = {}
    # do some raw searching according to args and kwargs and build the wrapped results
    ...
    return ret
Run Code Online (Sandbox Code Playgroud)

为了尝试异步请求,我编写了以下测试用例来测试如何将我的东西与asyncio模块进行交互.

# Here is my testing script
@asyncio.coroutine
def handle(f, *args, **kwargs):
  r = yield from f(*args, **kwargs)
  return r

s = search()
loop = asyncio.get_event_loop()
loop.run_until_complete(handle(s.searching, arg1, arg2, ...))
loop.close()
Run Code Online (Sandbox Code Playgroud)

通过运行pytest, …

python asynchronous python-asyncio

13
推荐指数
1
解决办法
7829
查看次数

标签 统计

asynchronous ×1

python ×1

python-asyncio ×1