芹菜看不到任务

时间:2018-07-25 13:31:20

标签: django celery

这是我的芹菜配置:

config.celery.py

from __future__ import absolute_import, unicode_literals
import os
from celery import Celery
import sys
from django.conf import settings

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')

app = Celery('config',
             backend=os.getenv('REDIS_URL', ),
             broker=os.getenv('CLOUDAMQP_URL')
             )
app.conf.update(BROKER_URL=os.getenv('CLOUDAMQP_URL', 'redis://localhost'),
                CELERY_RESULT_BACKEND=os.getenv('REDIS_URL',
                                                'redis://localhost'))

app.config_from_object('django.conf:settings', namespace='CELERY')


sys.path.append(os.path.join(os.getcwd(), "applications"))
app.autodiscover_tasks()
TASK_SERIALIZER = 'json'

Celery无法按照以下结构查找任务

project_name/
   apps/
       users/
           tasks.py
   config/
       celery.py

我所有的应用程序都在INSTALLED APPS中注册,而我正在通过apps.py文件使用应用程序注册。

1 个答案:

答案 0 :(得分:0)

根据Celery的documentation,您的文件config/__init__.py应该与此类似:

from __future__ import absolute_import, unicode_literals

# 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

__all__ = ('celery_app',)