前面兩節(jié)介紹了Celery的安裝與簡單應(yīng)用,現(xiàn)在來詳細(xì)介紹在django中的Celery應(yīng)用,并附帶郵件發(fā)送的異步任務(wù)的例子.
1.新建Django工程與應(yīng)用
新建工程與應(yīng)用這里不做詳細(xì)介紹潮饱,自強(qiáng)學(xué)堂的Django基礎(chǔ)教程寫得很不錯(cuò),可一看维蒙。這里我們建一個(gè)名為demo
的項(xiàng)目和home
應(yīng)用绿语。
1.編輯settings.py
文件
在文件的最后添加如下代碼:
###配置Broker
BROKER_URL = 'redis://127.0.0.1:6379/0'
BROKER_TRANSPORT = 'redis'
2.新建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)
3.新建tasks.py
文件
在home
應(yīng)用文件夾下:
from demo.celery import app
@app.task
def hello_world():
print('Hello World')
4.編輯viewss.py
文件
#coding:utf-8
from django.shortcuts import render
from django.http import HttpResponse
from .tasks import hello_world
def index(request):
hello_world.delay()
return HttpResponse(u"Fuck the GFW!")
5.其他
當(dāng)然別忘了在app_installed注冊(cè)home
應(yīng)用秉宿,并且配置url.py
的路由。
6.啟動(dòng)Celery和Django
進(jìn)入demo
工程下,啟動(dòng)Celery筏勒。
zjq:~/dev/demo$ celery -A demo worker -l debug
啟動(dòng)Django:
zjq:~/dev/demo$ python manage.py runserver
7.大功告成
打開瀏覽器资昧,進(jìn)入index方法,可看到Celery日志打印了”Hello World“幔烛。
8.郵件發(fā)送的異步任務(wù)的例子
===>前往我的github