【发布时间】:2018-10-05 20:44:17
【问题描述】:
我正在运行aiohttp 作为我的服务器。当一个请求进来时,我尝试生成一个进程来处理它。但我收到以下错误:
Traceback(最近一次调用最后一次):文件“asyncppx.py”,第 33 行,在 app.add_routes([web.get('/', asyncio.ensure_future(runMcows(n)))]) 文件 "/Users/i3ye/Programming/vsc/async/env/lib/python3.6/site-packages/aiohttp/web_app.py", 第 231 行,在 add_routes self.router.add_routes(路由)文件“/Users/i3ye/Programming/vsc/async/env/lib/python3.6/site-packages/aiohttp/web_urldispatcher.py”, 第 966 行,在 add_routes 中 route_obj.register(self) 文件“/Users/i3ye/Programming/vsc/async/env/lib/python3.6/site-packages/aiohttp/web_routedef.py”, 第 38 行,在寄存器中 reg(self.path,self.handler,**self.kwargs)文件“/Users/i3ye/Programming/vsc/async/env/lib/python3.6/site-packages/aiohttp/web_urldispatcher.py”, 第 922 行,在 add_get resource.add_route(hdrs.METH_HEAD, handler, **kwargs) 文件“/Users/i3ye/Programming/vsc/async/env/lib/python3.6/site-packages/aiohttp/web_urldispatcher.py”, 第 269 行,在 add_route expect_handler=expect_handler) 文件 "/Users/i3ye/Programming/vsc/async/env/lib/python3.6/site-packages/aiohttp/web_urldispatcher.py", 第 682 行,在 init 中 资源=资源)文件“/Users/i3ye/Programming/vsc/async/env/lib/python3.6/site-packages/aiohttp/web_urldispatcher.py”, 第 103 行,在 init 中 断言可调用(处理程序),处理程序 AssertionError:> 任务被破坏,但它 等待中!任务:> sys:1:RuntimeWarning:协程'runMcows'从来没有 期待中
代码如下,有什么建议吗?
from aiohttp import web
import aiohttp
import asyncio
loop = asyncio.get_event_loop()
#tasks = []
n = 0
def mcowA(n):
print (n, " : A")
return
async def fetch(session, url):
async with session.get(url) as response:
return await response.text()
def mcowB(n):
print (n, " : B")
return
async def runMcows(n):
mcowA(n)
async with aiohttp.ClientSession() as session:
html = await fetch(session, 'http://localhost:8081')
mcowB(n)
return html
try:
app = web.Application()
app.add_routes([web.get('/', asyncio.ensure_future(runMcows(n)))])
loop.run_forever()
web.run_app(app)
finally:
loop.close()
【问题讨论】:
标签: python-3.x python-asyncio aiohttp