模块 'project_name' 没有属性 'celery'

Module 'project_name' has no attribute 'celery'

我正在尝试在 django 上使用 celery 和 rabbitmq 设置后台任务,但我收到一条错误消息,指出我的项目没有 celery 属性。我正在使用 PyCharm 并通过它安装了 celery。

我是 celery 的新手,但我已经阅读了很多与此问题类似的文章( 这篇似乎最接近但不确定是否完全相同)

项目结构:

project_name
├──project_name
|  ├── settings.py
├──app_name1
|  └──celery.py
├──app_name2
|  └──tasks.py

我运行以下命令:

celery -A project_name worker -l info --pool=solo

但是我得到以下错误:

Error: Invalid value for "-A" / "--app":
Unable to load celery application.
Module 'project_name' has no attribute 'celery'

celery.py 文件:

from __future__ import absolute_import, unicode_literals

import os

from celery import Celery

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

app = Celery('project_name')

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

app.autodiscover_tasks()

tasks.py 文件:

from __future__ import absolute_import, unicode_literals

from celery import shared_task

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

仅作记录:将 celery.py 文件放入主项目文件中,而不是在应用程序中。