一、引言
Python异步开发已经非常流行了,一些主流的组件像MySQL、Redis、RabbitMQ等都提供了异步的客户端,再处理耗时的时候不会堵塞住主线程,不但可以提高并发能力,也能减少多线程带来的cpu上下文切换以及内存资源消耗。但在业务开发的时候一些第三方库没有异步的处理方式,例如OSS、CV、其他第三方提供的SDK以及自己封装的函数有耗时等,此时还是需要借助线程来加速,再异步中就不会堵塞主线程,因此封装一个异步装饰器可以更好的处理异步,让代码更简洁。
常用组件异步库
序号 | 组件名 | 异步库 | 说明 |
---|---|---|---|
1 | MySQL | aiomysql https://github.com/aio-libs/aiomysql SQLAIchemy https://github.com/sqlalchemy/sqlalchemy tortoise-orm https://github.com/tortoise/tortoise-orm |
aiomysql 基于asyncio的MySQL驱动,用asyncio实现异步IO。这是最常用的Python异步MySQL驱动。 SQLAIchemy 和 Tortoise-ORM 都是支持异步的ORM |