Джанго Сельдерей: ошибка отказа в подключении к Комбу
Это кажется немного странным, возможно, я что-то упускаю, но всякий раз, когда я отправляю задачи в очередь celery, она внезапно выдает ошибку:
Ошибка атрибута: объект 'ChannelPromise' не имеет значения атрибута ''
Сначала это работает, но если задачи отправляются в очередь с немного большей частотой, внезапно начинает выдаваться вышеупомянутая ошибка. Похоже на какой-то заблокированный процесс или что-то в этом роде. Брокером является aws sqs
Настройки сельдерея:
CELERY_RESULT_BACKEND = 'django-db'
CELERY_BROKER_URL = 'sqs://'
CELERY_BROKER_TRANSPORT_OPTIONS = {
'region' : 'us-south-1', #temp name
'visibility-timeout' : 3600,
'polling-interval' : 10
}
CELERY_ACCEPT_CONTENT = ['application/json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_TIMEZONE = 'Asia/Kolkata'
Пакетов:
celery = ">=5.0.5"
django = "==4.2.16"
kombu = "==5.4.2"
django-celery-beat = ">=2.0.0"
django-celery-results = ">=2.2.0"
Файлов: project/init.py
from .celery import app as celery_app
__all__ = ['celery_app']
project/celery.py
import os
from celery import Celery
from project.settings import settings
# set the default Django settings module for the 'celery' program.
#settings are kept inside a separate folder for multiple envs [project/settings/settings_prod.py,project/settings/settings_stag.py,project/settings/settings.py]
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings.settings')
app = Celery('project')
app.config_from_object('django.conf:settings', namespace='CELERY')
# Load task modules from all registered Django app configs.
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
@app.task(bind=True)
def debug_task(self):
pass
Полное отслеживание ошибки: