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 по отдельности работают без проблем, но когда они запускаются вместе, сервер останавливается. Пожалуйста, помогите мне узнать, почему это происходит.