Celery不会自动发现其他模块中的共享任务

时间:2018-10-02 13:07:11

标签: django celery django-celery celerybeat

我正在尝试使用带Django的celery,而且距离还不太远。我也在用django-celery-beat。我似乎没有发现其他模块中的共享任务。

以下是一些代码:

proj / proj / settings.py:

INSTALLED_APPS = [
  "django_celery_beat",
  "proj",
  "proj.myapp",
]
CELERY_BROKER_URL = "amqp://user:password@localhost:5672/vhost"

proj / proj / __ init __。py:

from proj.celery import app as celery_app

__all__ = ('celery_app',)

proj / proj / celery.py:

import os
from celery import Celery
from django.conf import settings

if not settings.configured:
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proj.settings')

app = Celery('proj')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()

@app.task(bind=True)
def debug_task(self):
    print(f'Request: {self.request!r}')

proj / app / tasks.py:

from celery import shared_task

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

当我查看django-beat的管理界面时,只看到“ proj.celery.debug_task”,而不是“ myapp.tasks.add”

有什么想法吗?


编辑:

Argh !! 事实证明,我的环境中尚未安装“ faker”库(我在愚蠢的测试任务中使用的库)。但是,芹菜的autodiscover_tasks函数无声地失败-因此我不知道错误是什么。

所以基本上,这是程序员的愚蠢。

0 个答案:

没有答案