首先要下载Celery,直接pip就好
我的redis配置
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://192.168.2.128:6379/0",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
'PASSWORD':'u',
"CONNECTION_POOL_KWARGS":{
"decode_responses":True
}
}
},
'session': {
'BACKEND': 'django_redis.cache.RedisCache',
'LOCATION': 'redis://192.168.2.128:6379/1',
'OPTIONS': {
'CLIENT_CLASS': 'django_redis.client.DefaultClient',
'PASSWORD':'u',
"CONNECTION_POOL_KWARGS":{
"decode_responses":True
}
}
},
}
在Django中配置Celery
之后我们在项目的根目录(与manage.py齐平)创建一个新文件夹,命名随便,但尽量避开关键词
在celery_tasks目录下新建一个包,包里面新建一个tasks文件夹(这个名字不能改),里面存放我们用celery的函数,比如这里就是存我们发送短信的函数
在main和config中配置Celery
main.py
创建Celery实例并添加配置
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'MyDjango.settings')
from celery import Celery
app=Celery('celery_tasks')
app.config_from_object('celery_tasks.config')
app.autodiscover_tasks(['celery_tasks.sms'])
config.py
格式为redis://:(你redis的密码)@ip+端口
比如你的redis密码是u
就输入下面这段
broker_url= 'redis://:u@192.168.2.128:6379'
tasks.py
这里存放我们使用celery的函数
必须用@app.task修饰
比如我的发送短信函数是Sample.main
from login.alibabacloud import Sample
from celery_tasks.main import app
@app.task
def celery_send_sms_code(mobile,sms_code):
return Sample.main(str(mobile),sms_code)
终端输入 celery -A celery_tasks.main worker -l INFO测试一下(如果文件目录和我一样的话)
表示连接成功