1、新建并配置一个celery文件,需同setting在同一级。
from celery import Celery
from django.conf import settings
import os
# 为celery设置环境变量
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'AIMilling.settings.dev') # 注意此为项目的名称
# 创建应用
app = Celery("demo")
# 配置应用
app.conf.update(
# 配置broker, 这里我们用redis作为broker
BROKER_URL='redis://@127.0.0.1:6379/1', # 无密码写法
BROKER_URL='redis://:332572@127.0.0.1:6379/1', # 密码写法
)
# 设置app自动加载任务
# 从已经安装的app中查找任务
app.autodiscover_tasks(settings.INSTALLED_APPS)
2、在app下面新建一个tasks文件。
from AIMilling.celery import app # 调用自己实例化的app
# 创建任务函数
@app.task
def my_task(number1,number2):
print(number1+number2)
3、视图调用。
class TestView(APIView):
authentication_classes = []
def post(self, request, *args, **kwargs):
"""add function"""
number1=1
number2=2
my_task.delay(number1, number2)
return Response({'info': 'ok'})
4、启动celery。
C:\Users\Administrator\Desktop\AIMilling>celery -A AIMilling worker -l info --pool=solo
5、调用api接口即可启动程序。
post http://127.0.0.1:8000/user/v1/test/