【发布时间】:2018-05-25 01:56:40
【问题描述】:
我在一个项目中使用 django ORM(在 django 之外)。我的工作流程是
- 通过 django ORM 选择对象和
- 然后使用异步库将其发送到消息队列
问题是你不能在异步环境中调用阻塞函数,你不能在阻塞环境中使用 async/await。
我想出了两个解决方案:
整个程序应该是异步的。并在需要时使用
loop.run_in_executor调用阻塞函数。整个程序应该是同步的。并使用
asyncio.run()(Python 3.7) 调用所需的异步函数。
我无法决定哪种方法更好。
我知道以前有人问过similar question。我的问题是在尝试组合阻塞和非阻塞代码时是否有一般规则?
【问题讨论】:
标签: python python-asyncio python-3.7