用過才知道真的那么好系列(三)——Celery與Django的結合

前面兩節(jié)介紹了Celery的安裝與簡單應用,現(xiàn)在來詳細介紹在django中的Celery應用,并附帶郵件發(fā)送的異步任務的例子.


1.新建Django工程與應用

新建工程與應用這里不做詳細介紹,自強學堂的Django基礎教程寫得很不錯,可一看。這里我們建一個名為demo的項目和home應用。

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應用文件夾下:

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.其他

當然別忘了在app_installed注冊home應用,并且配置url.py的路由。

6.啟動Celery和Django

進入demo工程下,啟動Celery。

zjq:~/dev/demo$ celery -A demo worker -l debug

啟動Django:

zjq:~/dev/demo$ python manage.py runserver

7.大功告成

打開瀏覽器,進入index方法,可看到Celery日志打印了”Hello World“。

8.郵件發(fā)送的異步任務的例子

===>前往我的github

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容