Celery在Django中的使用
Celery在Django中的使用
!/usr/bin/env python3 -- coding:utf-8 -- Author:wd from future import absolute_import, unicode_literals import os from celery import Celery os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'projectname.settings') # 设置django环境 app = Celery('appname') # 使用跟projectname一致的appname,既appname=projectname app.config_from_object('django.conf:settings', namespace='CELERY') # 使用CELERY_ 作为前缀,在settings中写配置 app.autodiscover_tasks() # 发现任务文件每个app下的task.py ``` 修改`unoecp/unoecp/__init__.py`: ```python from __future__ import absolute_import, unicode_literals from .celery import app as celery_app __all__ = ['celery_app'] ``` 修改`unoecp/unoecp/settings.py`配置: ```python CELERY_BROKER_URL = 'redis://10.1.210.69:6379/0' # Broker配置,使用Redis作为消息中间件 CELERY_RESULT_BACKEND = 'redis://10.1.210.69:6379/0' # BACKEND配置,这里使用redis CELERY_RESULT_SERIALIZER = 'json' # 结果序列化方案
from future import absolute_import, unicode_literals from celery import shared_task @shared_task def add(x, y): return x + y @shared_task def mul(x, y): return x * yfrom django.http import JsonResponse from app01 import tasks # Create your views here. def index(request,*args,**kwargs): res=tasks.add.delay(1,3) #任务逻辑 return JsonResponse({'status':'successful','task_id':res.task_id})
最后更新于