码迷,mamicode.com
首页 > 其他好文 > 详细

django-celery

时间:2014-12-29 15:02:58      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:

在settings.py里installed_apps里添加 djcelery

需安装django-celery

在settings末端添加

import djcelery
djcelery.setup_loader()

BROKER_URL = amqp://guest:guest@localhost:5672//
CELERY_RESULT_BACKEND = ‘amqp://guest:guest@localhost:5672//‘

CELERY_TASK_SERIALIZER = ‘json‘
CELERY_RESULT_SERIALIZER = ‘json‘
CELERY_ACCEPT_CONTENT = [‘json‘]

CELERY_IMPORTS = (hello.tasks, ) CELERY_TIMEZONE = TIME_ZONE CELERYBEAT_SCHEDULER = djcelery.schedulers.DatabaseScheduler CELERY_ALWAYS_EAGER = True

新建一个app

里面新建一个tasks.py

from celery import task


@task
def add(x, y):
    return x+y


@task
def prints():
    print xiao

需安装

sudo apt-get install rabbitmq-server

启动rabbitmq-server

关闭rabbitmq-server -detached

查看状态rabbitmqctl status

运行celery

python manage.py celery worker --loglevel=info

或者后台运行celery

$ nohup django-admin.py celeryd worker -B --loglevel=info --settings=settings --pythonpath=. &

celery运行定时任务

python manage.py celery beat

查看celery是否正常运行

$ ps aux | grep celery

关闭celery

ps auxww | grep ‘celery worker‘ | awk ‘{print $2}‘ | xargs kill -9

 

进入Django的admin后台,进入Djcelery栏目,一共有四个选项:

  • Crontabs

在此选项中,可以创建定时执行的任务需要的定时时间。

  • Intervals

在此选项中,可以创建间隔执行的任务需要时间间隔。

  • Periodic tasks

在此选项中,创建一个相应的任务,选择任务,需要定时执行的时间或者时间间隔,并保存。

当然,还有其他一些高级的选项,可以尝试使用。

  • Tasks

  • Workers

到此,一个任务便创建成功了。不出意外,创建的任务会如期执行,当然,如果创建的没有 如期执行的,应该依次检查前面的步骤,查看celery是否在运行,创建的task是否报错等等, 一级一级排除错误。

技术分享

技术分享

技术分享

 

django-celery

标签:

原文地址:http://www.cnblogs.com/tuifeideyouran/p/4191511.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!