如何在 Django 中跨应用程序/项目注册芹菜任务



如何从项目级别调用芹菜(应用程序)任务,反之亦然。

我有一个 Django 目录结构,如下所示:

- proj
     |_ celery.py
     |_ settings.py
- app
     |_ tasks.py
     |_ views.py

settings.py 我有一个CELERYBEAT_SCHEDULE变量,指的是app/tasks中的shared_task。 此任务未在 celery inspect registered 中列出。

注册表中列出的任务也不是,因为它们是在proj/celery.py中定义的,可以通过apps/views.py中的函数调用。

我已经按照芹菜网站上的说明进行操作。

shared_task装饰器中的函数必须在应用程序 AppConfig 中列出。

app/apps.py下,按如下所示导入任务:

from .tasks import add

app/tasks.py导入shared_task如下所示:

from proj.celery import shared_task

proj/celery.py导入shared_task如下所示:

import celery
from celery import shared_task

Pycharm 会抱怨未使用的导入,无论它们是如何使用的,只是不在 pycharm 正在解析的文件中。

现在,当我开始芹菜工人时,例如:

python manage.py celeryd --loglevel=DEBUG &

而不是

celery -A pears worker --loglevel=info &

我在app/tasks.py中的任务已注册并可调用。

相关内容

  • 没有找到相关文章

最新更新