如何实现 Flask 应用的异步处理?

2026-05-28 13:271阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计389个文字,预计阅读时间需要2分钟。

如何实现 Flask 应用的异步处理?

网站包含前端和后端,异步处理可用于前端和后端。前端+jQuery+执行ajax请求时,可设置async属性为true,并为success设置一个callback函数,在服务器返回前,浏览器可以做些事。

web网站包含前端和后端, 异步处理可以用在前端, 也可以用在后端. 前端 jquery 进行 ajax 请求时, 可设置 async 属性为 true, 并为 success 设置一个 callback 函数, 在服务端返回之前, 浏览器可以执行 ajax 之后的代码, 当服务器端返回后, jquery会执行 success 回调.


后端的视图函数也可以引入这种异步处理机制, 发扬广大的是nodejs了, nodejs web服务单线程异步处理方式, 一般来讲, nodejs 框架的并发性要比Django/Flask 要好, 主要原因是 Django/Flask 都是基于 WSGI 同步处理模式的, WSGI 采用多线程方式来支持并发, 和协程相比, 多线程资源消耗要大的多, 所以并发性要差一些. 当然如果我们的 Django/Flask web应用配合 Gunicorn(高性能的WSGI服务器) 和 nginx(高性能Web服务器) 部署, 并发也会有一定的改善.


为了改善 flask 的并发, flask 社区主要尝试了两个方向:

1. 尝试在 flask 中引入 async 机制, 比如 flask_aioblog.miguelgrinberg.com/post/using-celery-with-flask

allynh.com/blog/flask-asynchronous-background-tasks-with-celery-and-redis/


windows 下的开发:

celery 采用 3.1.25 版本, 之后的 celery 不支持 window平台.

Redis-x64-3.0.504.msi 下载地址 github.com/MicrosoftArchive/redis/releases

如何实现 Flask 应用的异步处理?


本文共计389个文字,预计阅读时间需要2分钟。

如何实现 Flask 应用的异步处理?

网站包含前端和后端,异步处理可用于前端和后端。前端+jQuery+执行ajax请求时,可设置async属性为true,并为success设置一个callback函数,在服务器返回前,浏览器可以做些事。

web网站包含前端和后端, 异步处理可以用在前端, 也可以用在后端. 前端 jquery 进行 ajax 请求时, 可设置 async 属性为 true, 并为 success 设置一个 callback 函数, 在服务端返回之前, 浏览器可以执行 ajax 之后的代码, 当服务器端返回后, jquery会执行 success 回调.


后端的视图函数也可以引入这种异步处理机制, 发扬广大的是nodejs了, nodejs web服务单线程异步处理方式, 一般来讲, nodejs 框架的并发性要比Django/Flask 要好, 主要原因是 Django/Flask 都是基于 WSGI 同步处理模式的, WSGI 采用多线程方式来支持并发, 和协程相比, 多线程资源消耗要大的多, 所以并发性要差一些. 当然如果我们的 Django/Flask web应用配合 Gunicorn(高性能的WSGI服务器) 和 nginx(高性能Web服务器) 部署, 并发也会有一定的改善.


为了改善 flask 的并发, flask 社区主要尝试了两个方向:

1. 尝试在 flask 中引入 async 机制, 比如 flask_aioblog.miguelgrinberg.com/post/using-celery-with-flask

allynh.com/blog/flask-asynchronous-background-tasks-with-celery-and-redis/


windows 下的开发:

celery 采用 3.1.25 版本, 之后的 celery 不支持 window平台.

Redis-x64-3.0.504.msi 下载地址 github.com/MicrosoftArchive/redis/releases

如何实现 Flask 应用的异步处理?