如何在 Django 项目中启动 celery worker

aru*_*836 6 python django ubuntu celery

我有一个Django具有下面提到的目录结构的项目。我正在尝试Celery用于在后台运行任务。我在运行worker. 每当我发出以下命令时,都会出现错误。

命令

$ celery -A tasks worker --loglevel=info 
Run Code Online (Sandbox Code Playgroud)

从所在的project目录manage.py

ModuleNotFoundError:没有名为“任务”的模块

从所在的project目录celery.py

ModuleNotFoundError:没有名为“任务”的模块

从所在的app目录tasks.py

AttributeError: 模块“tasks”没有属性“celery”

项目结构

project
    |-- app
         |-- admin.py
         |-- apps.py
         |-- __init__.py
         |-- models.py
         |-- tasks.py
         |-- tests.py
         |-- urls.py
         |-- views.py
    |-- project
            |-- celery.py
            |-- settings.py
            |-- __init__.py
            |-- urls.py
            |-- wsgi.py
    |-- manage.py
Run Code Online (Sandbox Code Playgroud)

nev*_*ner 11

您应该使用项目名称来启动 celery。由于您celery.py位于内部project目录,因此您需要从项目的根目录运行以下内容:

celery -A project worker --loglevel=info 
Run Code Online (Sandbox Code Playgroud)

代替

celery -A tasks worker --loglevel=info 
Run Code Online (Sandbox Code Playgroud)

在此处查看示例。