不确定这是否可以实现。我想从脚本触发 HTTP POST 请求,但不等待响应。相反,我想立即返回。我尝试了一些方法:#!/usr/bin/env python3import asyncioimport aiohttpasync def fire(): await client.post('http://httpresponder.com/xyz')async def main(): asyncio.ensure_future(fire())if __name__ == '__main__': loop = asyncio.get_event_loop() client = aiohttp.ClientSession(loop=loop) loop.run_until_complete(main())脚本立即返回且没有错误,但 HTTP 请求永远不会到达目的地。我可以触发 POST 请求,但不等待服务器的响应,只是在发送请求的那一刻终止吗?
2 回答
慕标琳琳
TA贡献1830条经验 获得超9个赞
我已经回答了一个相当类似的问题。
async def main():
asyncio.ensure_future(fire())
ensure_future 安排 coro 执行,但不等待其完成,run_until_complete也不等待所有期货的完成。
这应该解决它:
async def main():
await fire()
添加回答
举报
0/150
提交
取消