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文件創(chuàng)建
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