在我的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中,知道我收到此错误。
答案 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')