Django runserver+Celery worker+Celery beat не работают одновременно (с брокером redis)

import os
from celery import Celery
from django.conf import settings

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'cole_rochman.settings')

app = Celery('cole_rochman',
             broker=settings.BROKER_URL,
             backend=settings.CELERY_RESULT_BACKEND,
             include=['core.tasks']
             )

# Using a string here means the worker doesn't have to serialize
# the configuration object to child processes.
# - namespace='CELERY' means all celery-related configuration keys
#   should have a `CELERY_` prefix.
app.config_from_object('django.conf:settings', namespace='CELERY')
app.config_from_object('cole_rochman.settings.celery')
app.conf.ONCE = {
    'backend': 'celery_once.backends.Redis',
    'settings': {
        'url': settings.BROKER_URL,
        'default_timeout': 60 * 60 * 24
    }
}

# Load task modules from all registered Django app configs.
app.autodiscover_tasks()


@app.task(bind=True)
def debug_task(self):
    print('Request: {0!r}'.format(self.request))


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

Мой проект называется 'cole_rochman' и версии пакетов: django==2.2.8, celery==4.3.0, redis==3.3.11, django-celery-results==1.1.2.

Я использую url брокера с aws redis. BROKER_URL = '{primary endpoint}', CELERY_RESULT_BACKEND = 'django-db'.

Я также использую сервер aws ec2. Я открыл три linux сервера и написал команды 'python manage.py runserver 0.0.0.0:8000', 'celery -A {proj name} worker -l INFO', 'celery -A {proj name} beat -l INFO' each.

Django и celery по отдельности работают без проблем, но когда они запускаются вместе, сервер останавливается. Пожалуйста, помогите мне узнать, почему это происходит.

Вернуться на верх