首页 > 代码库 > django-celery

django-celery

在settings.py里installed_apps里添加 djcelery

需安装django-celery

在settings末端添加

import djcelerydjcelery.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_ZONECELERYBEAT_SCHEDULER = djcelery.schedulers.DatabaseSchedulerCELERY_ALWAYS_EAGER = True

新建一个app

里面新建一个tasks.py

from celery import task@taskdef add(x, y):    return x+y@taskdef 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