При добавлении плагина django-олицетворение в задаче django-celery возникла ошибка - PullRequest
0 голосов
/ 18 апреля 2019

Я пользуюсь сельдереем и сельдереем, чтобы запустить график работы на год.И я запускаю celery и celery-beat как демон.

Я использую python3.6 & django2

Недавно я добавил "django-impersonate", который позволяет администраторам входить в систему под другим аккаунтом..

"Джанго-подражатель" теперь работает нормально.Тем не менее, все мои задачи сельдерея имеют ошибку.

Traceback (most recent call last):
File "/opt/python3/lib/python3.4/site-packages/celery/app/trace.py", > line 374, in trace_task
    R = retval = fun(*args, **kwargs)
  File "/opt/python3/lib/python3.4/site-packages/celery/app/trace.py", line 629, in __protected_call__
    return self.run(*args, **kwargs)
  File "/opt/project/tracker/tasks.py", line 591, in commission
    from tracker.models import TrueConversion
  File "/opt/project/tracker/models.py", line 4, in <module>
    from panel import models as panel_models
  File "/opt/project/panel/models.py", line 5, in <module>
    from django.contrib.auth.models import User
  File "/opt/python3/lib/python3.4/site-packages/django/contrib/auth/models.py", line 2, in <module>
    from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
  File "/opt/python3/lib/python3.4/site-packages/django/contrib/auth/base_user.py", line 47, in <module>
    class AbstractBaseUser(models.Model):
  File "/opt/python3/lib/python3.4/site-packages/django/db/models/base.py", line 100, in __new__
    app_config = apps.get_containing_app_config(module)
  File "/opt/python3/lib/python3.4/site-packages/django/apps/registry.py", line 244, in get_containing_app_config
    self.check_apps_ready()
  File "/opt/python3/lib/python3.4/site-packages/django/apps/registry.py", line 127, in check_apps_ready
    raise AppRegistryNotReady("Apps aren't loaded yet.")
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.

Я пытался обновить оба плагина, он все еще имеет ту же ошибку.

Однако, когда я запускаю задачу сельдерея непосредственноскрипт, он работает нормально!

celery --app=project.celeryconf:app worker --beat

Вот мой файл конфигурации сельдерея

import os
from celery import Celery

os.environ['DJANGO_SETTINGS_MODULE'] = 'project.settings'

app = Celery('project')
app.config_from_object('django.conf:settings')

app.autodiscover_tasks()
from tracker import tasks
app.conf.beat_schedule = {
    'analysis-add-every-1-minutes': {
        'task': 'tracker.tasks.analysis',
        'schedule': 60.0,
    },
......
other task
......
}
app.conf.timezone = 'UTC'

CELERY_SEND_TASK_SENT_EVENT = True

Есть ли люди, использующие эти два плагина?У вас есть такая же проблема?

Как я могу решить эту проблему?Спасибо!

...