【问题标题】:Why do I have to put the project name when importing tasks when using Django with Celery?为什么在使用 Django 和 Celery 时导入任务时必须输入项目名称?
【发布时间】:2011-04-21 15:03:10
【问题描述】:

我刚刚为 Django 项目安装并配置了带有 RabbitMQ 的 Celery,当我像这样导入它们时遇到了运行任务的问题:

from someapp.tasks import SomeTask

当我添加项目名称时它起作用了:

from myproject.someapp.tasks import SomeTask

我尝试将其添加到 settings.py 文件中,但没有任何改变:

CELERY_IMPORTS = ("myproject.someapp.tasks",)

我可以将项目名称留在导入行,因为它可以工作,但我想知道是否有解决方法或为什么必须这样。

【问题讨论】:

    标签: python django rabbitmq celery


    【解决方案1】:

    这可能是因为你有

    INSTALLED_APPS = ("myproject.someapp", )
    

    相反,您应该在 Python 路径中添加包含应用程序的目录(项目位于 这种情况),只需做

    INSTALLED_APPS = ("someapp", )
    

    恕我直言,无论如何这对“应用程序”来说更有意义。

    【讨论】:

    • 很高兴知道这一点,我对设置文件进行了更改,但现在任务不再触发。其他一切仍然有效,但任务没有运行。
    • 不运行?启动 celeryd 时是否在启动画面的任务列表部分列出?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 2013-10-02
    • 1970-01-01
    • 2013-10-14
    • 2016-11-29
    • 2021-02-26
    相关资源
    最近更新 更多