您的位置:首页 > 编程语言 > Go语言

django celery使用

2018-02-05 16:53 357 查看
版本:
celery:3.1.25
django-celery:3.2.2
django:1.8.16

安装celery3
pip install celery==3.1.25
pip install django-celery


celery与django结合使用的配置:
参考文档:http://docs.celeryproject.org/en/3.1/django/first-steps-with-django.html

proj/proj/settings配置:
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'study',
'djcelery',
)


import djcelery
djcelery.setup_loader()
BROKER_URL = 'redis://172.16.42.128:6379'
CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'
CELERY_RESULT_BACKEND = 'djcelery.backends.database:DatabaseBackend'
CELERY_ACCEPT_CONTENT = ['application/json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_TIMEZONE = 'Asia/Shanghai'
CELERY_ENABLE_UTC = False
CELERYD_CONCURRENCY = 10
CELERYD_MAX_TASKS_PER_CHILD = 5
CELERY_SEND_EVENTS = True


proj/proj/__init__.py
from __future__ import absolute_import

# This will make sure the app is always imported when
# Django starts so that shared_task will use this app.
from .celery import app as celery_app  # noqa


proj/proj/celery.py
注意:proj改成你自己项目的名称
from __future__ import absolute_import

import os

from celery import Celery

# set the default Django settings module for the 'celery' program.
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proj.settings')

from django.conf import settings  # noqa

app = Celery('proj')

# Using a string here means the worker will not have to
# pickle the object when using Windows.
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)

@app.task(bind=True)
def debug_task(self):
print('Request: {0!r}'.format(self.request))


demoapp/tasks.py

from __future__ import absolute_import

from celery import shared_task

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

@shared_task
def mul(x, y):
return x * y

@shared_task
def xsum(numbers):
return sum(numbers)


命令行启动celery
启动celerycam
python manage.py celerycam


启动worker
python manage.py celery worker -l info


启动beat
python manage.py celery beat -l info
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  celery django