Django的setting中添加
djcelery.setup_loader()
BROKER_URL = 'redis://127.0.0.1:6379/0'
BROKER_TRANSPORT = 'redis'
CELERY_IMPORTS = ('register.task')
当djcelery.setup_loader()运行时,
Celery便会去查看INSTALLD_APPS下包含的所有app目录中的tasks.py文件,找到标记为task的方法,
将它们注册为celery task。BROKER_URL和CELERY_RESULT_BACKEND分别指代你的
Broker的代理地址以及Backend(result store)数据存储地址。在Django中如果
没有设置backend,会使用其默认的后台数据库用来存储数据。
注意,此处backend的设置是通过关键字CELERY_RESULT_BACKEND来配置,
与一般的.py文件中实现celery的backend设置方式有所不同。
一般的.py中是直接通过设置backend关键字来配置
setting同级celery文件创建
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', 'test_celery.settings')
from django.conf import settings # noqa
app = Celery('test_celery')
# 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)
supervisord配置
[program:celeryd]
command=/home/irlans/venv3.5/bin/python manage.py celery worker -l info
stdout_logfile=/home/irlans/celery.log
stderr_logfile=/home/irlans/celery_err.log
autostart=true
autorestart=true
startsecs=10
stopwaitsecs=600
网友评论