无法将模型导入celery task.py文件

时间:2018-12-24 22:06:48

标签: django celery importerror

在我的task.py文件中,我想从民意调查应用程序导入模型,但是我得到 django.core.exceptions.AppRegistryNotReady:启动工作程序时尚未加载应用程序

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中,知道我收到此错误。

1 个答案:

答案 0 :(得分:1)

您的错误与您的配置有关。如果要将芹菜与django连接起来,则必须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')