本文共 1566 字,大约阅读时间需要 5 分钟。
github:
码云:$ django-admin.py startproject django_celery# 并新建如下文件celery.pytasks.pyviews.py# 目录如下:django_celery/├── django_celery│ ├── celery.py│ ├── __init__.py│ ├── settings.py│ ├── tasks.py│ ├── urls.py│ ├── views.py│ └── wsgi.py└── manage.py
配置Broker,在最后添加
# config celery brokerBROKER_URL = 'redis://127.0.0.1:6379/0'BROKER_TRANSPORT = 'redis'
from __future__ import absolute_importimport osimport djangofrom celery import Celeryfrom django.conf import settingsos.environ.setdefault('DJANGO_SETTINGS_MODULE', 'django_celery.settings')django.setup()app = Celery('django_celery')app.config_from_object('django.conf:settings')app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
task 是输出雷总的经典语录 Are you OK !!!
from .celery import app@app.taskdef leijun(): print('Are you OK !!!')
#coding:utf-8from django.shortcuts import renderfrom django.http import HttpResponsefrom .tasks import leijun as leijun_taskdef leijun(request): leijun_task.delay() return HttpResponse(u"[ task is running in background ]")
from django.conf.urls import urlfrom django.contrib import adminfrom django_celery import viewsurlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^leijun/', views.leijun),]
进入 django_celery根目录 执行注册命令
$ celery -A django_celery worker -l info
python manage.py runserver
# curl 请求$ curl http://127.0.0.1:8000/leijun/输出> [ task is running in background ]
celery 控制台输出Are you OK!!! 执行成功
需要启动Redis 因为Broker 用的是redis
源代码github地址: