gpt4 book ai didi

django - 如何在 Django 中跨应用程序/项目注册 celery 任务?

转载 作者:行者123 更新时间:2023-12-02 04:30:02 25 4
gpt4 key购买 nike

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

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

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

在settings.py中,我有一个CELERYBEAT_SCHEDULE变量,它引用app/tasks中的shared_task。此任务未在celery检查注册中列出。

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

我已按照 celery 网站上的说明进行操作。

最佳答案

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 正在解析的文件中。

现在当我开始 celery worker 时:

python manage.py celeryd --loglevel=DEBUG &

而不是

celery -A pears worker --loglevel=info &

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

关于django - 如何在 Django 中跨应用程序/项目注册 celery 任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37390847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com