5 celery结合发布
6 带坑的发布串行
一、安装django-celery,,使用redis作为broker
pip install django-celery
pip install celery-with-redis
二、设置setting.py配置
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'demo',
'djcelery',
]
三、celery.py
from __future__ import absolute_import, unicode_literals
import os
from celery import Celery
from django.conf import settings
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'xxx.settings')
app = Celery('xxxx')
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
@app.task(bind=True)
def debug_task(self):
print ('Request: {0!x}'.format(self.request))
四、task.py
from __future__ import absolute_import, unicode_literals
import time
import requests
from celery import shared_task
from django.views.decorators.csrf import csrf_exempt, csrf_protect
from django.shortcuts import render, HttpResponse,redirect
@shared_task
def add(x, y):
return x+y
@shared_task
def mul(x, y):
return x*y