Django笔记(Celery简介与配置)

Celery简介

            Celery是一个基于python开发的分布式异步消息任务队列,可以轻松的对任务进行异步处理。

实例应用场景

             异步调用:邮件发送、上传头像等

             定时任务:定期去统计日志、数据备份等

Celery的相关概念

task    :需要执行的任务

worker    :负责干活的小弟

broker     :任务队列(worker拿任务的地方)

backend    :干完活 存放结果的地方

​​​​​

​Celery的安装与使用

1. 安装 (注意!如果安装不上请在pip前面加 sudo 权限)

pip install celery

pip install celery-with-redis

pip install django-celery

sudo apt install redis-server

2. 配置

2.1 settings.py 文件配置

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # 自己的app
    't8',
    # 第三方给定的
    'djcelery',
]
# celery配置
import djcelery
djcelery.setup_loader()
BROKER_URL='redis://127.0.0.1:6379/1' # localhost
CELERY_CONCURRENCY=2  #(设置worker的并发数量)
CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/2' # localhost

2.2 在工程目录下新建celery.py 文件

from __future__ import absolute_import
from celery import Celery
from django.conf import settings
import os

# 设置系统的环境配置用的是Django的
os.environ.setdefault('DJANGO_SETTING_MODEULE','工程名字.settings')

# 实例化celery
app = Celery('mycelery')

# APP设置时区
app.conf.timezone = "Asia/Shanghai"

# 指定celery的配置来源 用的是项目的配置文件settings.py
app.config_from_object("django.conf:settings")

# 让celery自动去发现我们的任务(task)
app.autodiscover_tasks(lambda : settings.INSTALLED_APPS)
# 你需要在app目录下新建一个叫tasks.py(不能写错) 文件

2.3 在工程目录下的 init.py 文件中加入

from __future__ import absolute_import, unicode_literals
from .celery import app as celery_app

下一篇celery的使用

猜你喜欢

转载自blog.csdn.net/ding_312/article/details/82425318