【问题标题】:Can't import models to celery tasks.py file无法将模型导入 celery tasks.py 文件
【发布时间】:2018-12-24 22:06:47
【问题描述】:

在我的 tasks.py 文件中,我想从民意调查应用程序导入模型,但是在启动工作程序时我得到 django.core.exceptions.AppRegistryNotReady: Apps are not loaded

tasks.py

from __future__ import absolute_import
import sys ,os
from polls.models import User
from .celery import app


@app.task
def add_user(user):
    # for user in users:
    print('urra')
    #user = User(user.first_name, user.last_name, user.email)
    # user.save()

celery.py:

from __future__ import absolute_import, unicode_literals
from celery import Celery
import os, sys
from task import celery_config
import dotenv
from os.path import dirname, join

app = Celery('task',
             broker='amqp://root:lusine_admin@localhost/task',
             backend='amqp://',
             include=['task.tasks'])

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "task.settings")
app.config_from_object(celery_config)
# app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)

if __name__ == '__main__':
    app.start()

实际上我没有找到错误轮询模块,但后来我从 bash 将它添加到 pythonpath 并知道我收到了这个错误。

【问题讨论】:

  • 请分享您的完整回溯。

标签: django celery importerror


【解决方案1】:

您的错误在于您的配置。如果你想用你的 django 连接 celery,你必须initialize the celery config from the django settings。在你的 celery.py 中替换这一行:

app.config_from_object(celery_config)

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-27
    • 2019-06-28
    • 2016-08-13
    • 2017-05-11
    • 1970-01-01
    • 1970-01-01
    • 2012-08-26
    • 2020-12-14
    相关资源
    最近更新 更多