首先要启动 rabbitmq 启动命令 sudo rabbitmq-server
1. 创建django项目 demo,和项目下的应用home
命令:
django-admin.py startproject demo
python manage.py startapp home
2. 项目创建成功后,在路径 demo/demo/settings.py 尾部添加
BROKER_URL = 'amqp://guest:guest@localhost:5672//' #连接rabbitmq
3. 在demo/demo路径下创建 celery.py
from __future__ import absolute_import import os import django from celery import Celery from django.conf import settings os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'demo.settings') django.setup() app = Celery('demo') app.config_from_object('django.conf:settings') app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
4. 在路径demo/home下 创建tasks.py 异步工作目录
from demo.celery import app @app.task def hello_world(): print('Hello World,fvf')
5. 在 demo/home/views.py 创建视图函数
#coding:utf-8 from django.shortcuts import render,render_to_response from django.http import HttpResponse from .tasks import hello_world,sendEmail def index(request): hello_world.delay() #sendEmail.delay() return HttpResponse(u"欢迎光临 自强学堂!")
6. 注册路由
from django.conf.urls import include, url from django.contrib import admin from home import views as home_views urlpatterns = [ # url(r'^admin/', include(admin.site.urls)), url(r'^$',home_views.index), # url(r'^success/$',home_views.success), ]
7. 进入demo/ 路径下启动celery
celery -A demo worker --loglevel=info 其中demo为celery.py所在目录
启动 django 命令 Python manage.py runserver
result = hello_world.delay() print '----------------------------' id = result.task_id # 获取id
print hello_world.AsyncResult(id).get()# 获取对应ID的返回值
最后效果
最后 如果还是失败。 请前往 http://www.jianshu.com/p/f1f2cd1cd491 页面底部下载代码实例。 这个网址也是本文参考网址