一、celery的使用
celery架构图(核心):
1.1 使用场景及安装
使用celery,主要有以下几种情况
- 定时任务
- 延迟任务
- 异步任务
使用命令安装
pip install celery
官方使用django-celery的文档:
https://docs.celeryq.dev/en/main/django/first-steps-with-django.html#using-celery-with-django
1.2在项目路径下创建celery.py
import os
from celery import Celery
# 1 导入django的配置文件(可以在WSGI中找到)---》后续在celery的任务中,就可以直接使用django的orm,缓存
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'TB_test.settings')
# 2 实例化得到celery对象
app = Celery('myproj')
# 3 celery的配置,使用django 配置文件中的配置--》刚刚写的配置
app.config_from_object('django.conf:settings')
# 4 这句话会去所有app中,自动查找 tasks.py 文件,作为任务文件
app.autodiscover_tasks()
1.3 django的配置文件settings.py
############# celery的配置信息######
#1 Broker配置,使用Redis作为消息中间件
BROKER_URL = 'redis://127.0.0.1:6379/1'
#2 BACKEND配置,使用redis
RESULT_BACKEND = 'redis://127.0.0.1:6379/2'
#3 序列化方案--》json
ACCEPT_CONTENT = ['json']
TASK_SERIALIZER = 'json'
# 结果序列化方案
RESULT_SERIALIZER = 'json'
# 4 任务结果过期时间,秒
TASK_RESULT_EXPIRES = 60 * 60 * 24
#5 时区配置
TIMEZONE = 'Asia/Shanghai'
1.4 在不同app中,创建tasks.py
from celery import shared_task
# 任务函数
@shared_task
def add(a, b):
return a + b
1.5 在项目目录下的 init.py中进行配置
加入以下代码
from .celery import app as celery_app
__all__ = ('celery_app',