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 文件配置

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

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

 1 from __future__ import absolute_import
 2 from celery import Celery
 3 from django.conf import settings
 4 import os
 5  
 6 # 设置系统的环境配置用的是Django的
 7 os.environ.setdefault('DJANGO_SETTING_MODEULE','工程名字.settings')
 8  
 9 # 实例化celery
10 app = Celery('mycelery')
11  
12 # APP设置时区
13 app.conf.timezone = "Asia/Shanghai"
14  
15 # 指定celery的配置来源 用的是项目的配置文件settings.py
16 app.config_from_object("django.conf:settings")
17  
18 # 让celery自动去发现我们的任务(task)
19 app.autodiscover_tasks(lambda : settings.INSTALLED_APPS)
20 # 你需要在app目录下新建一个叫tasks.py(不能写错) 文件

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

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

 

posted @ 2019-04-21 19:43  柒月不哭  阅读(325)  评论(0编辑  收藏  举报