如何在 Django 项目中启动 celery worker

How start start celery worker in Django project

我有一个 Django 项目,其目录结构如下所述。我正尝试在后台使用 Celery 执行 运行 任务。我在 运行 worker 时遇到了一些麻烦。每当我发出以下命令时,我都会收到错误消息。

命令

$ celery -A tasks worker --loglevel=info 

来自 project 所在的 manage.py 目录

ModuleNotFoundError: No module named 'tasks'

来自 project 所在的 celery.py 目录

ModuleNotFoundError: No module named 'tasks'

来自 tasks.py 所在的 app 目录

AttributeError: module 'tasks' has no attribute '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

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

celery -A project worker --loglevel=info 

而不是

celery -A tasks worker --loglevel=info 

检查例子here.