擅长:python、mysql、java
<p>我想补充@user4815162342的答案</p>
<p><code>FastAPI</code>是一个不同步的框架。我建议坚持几个原则:</p>
<ul>
<li>不要以阻塞方式在同步函数中执行IO操作。异步准备此资源,并已将准备好的数据传递给同步函数(这一原则可以称为同步代码的异步依赖项)</李>
<li>如果您仍然需要在同步代码中执行阻塞IO操作,请在单独的线程中执行。并通过<code>asyncio</code>(<code>def</code>端点,<code>run_in_executor</code>与<code>ThreadPoolExecutor</code>或<code>def</code>后台任务异步等待该结果)</李>
<li>如果需要执行阻塞的CPU绑定操作,则将其执行委托给单独的进程(最简单的方法是使用<code>ProcessPoolExecutor</code>或任何任务队列执行<code>run_in_executor</code>)</李>
</ul>