::: hljs-center

使用 Flask 和 Celery 构建异步任务处理

:::

Flask 是一个轻量级的 Python Web 框架,而 Celery 是一个强大的分布式任务队列系统。结合这两者,你可以实现高效的异步任务处理,适用于需要执行长时间运行任务的 Web 应用程序。

为什么使用 Celery?

在实际应用中,某些操作可能会耗费大量时间,例如发送电子邮件、大数据处理、图像处理等。如果将这些操作放在主线程中,会导致用户体验不佳,因为用户在等待响应时无法进行其他操作。Celery 允许你将这些任务异步化,从而提高用户体验和系统效率。

示例:Flask 与 Celery 的集成

以下是一个简单的示例,展示如何将 Flask 和 Celery 结合使用,以异步发送电子邮件。

环境准备

首先,确保你安装了 Flask 和 Celery:

pipinstall Flask Celery redis
  • 1.

我们将使用 Redis 作为 Celery 的消息代理(broker)。

创建 Flask 应用

创建一个名为 app.py 的文件,内容如下:

from flask import Flask, request, jsonify
from celery import Celery
import time

app = Flask(__name__)

# 配置 Celery
app.config['CELERY_BROKER_URL'