用过才知道真的那么好系列(三)——Celery与Django的结合

前面两节介绍了Celery的安装与简单应用,现在来详细介绍在django中的Celery应用,并附带邮件发送的异步任务的例子.


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.邮件发送的异步任务的例子

===>前往我的github

你可能感兴趣的:(用过才知道真的那么好系列(三)——Celery与Django的结合)