@SereyK

Почему может не записываться результат задачи Celery?

Добрый день.
Делаю задачи с использованием:
Django+Celery+Redis+django-celery-results
Настройки:
CELERY_BROKER_URL = os.environ.get("CELERY_BROKER", f"redis://{LOCAL_HOST}:6379/0")
CELERY_RESULT_BACKEND = 'django-db'
CELERY_RESULT_BACKEND_DB = 'postgresql://admin:123456@localhost:5432/web'

При выполнении задачи
@csrf_exempt
def run_task(request):
    task = create_task.delay(1)
    return JsonResponse({"task_id": task.id}, status=202)

Получаю
Traceback (most recent call last):
  File "/Users/admin/my/venvs/wotoku_web/lib/python3.9/site-packages/billiard/pool.py", line 1264, in mark_as_worker_lost
    raise WorkerLostError(
billiard.exceptions.WorkerLostError: Worker exited prematurely: signal 9 (SIGKILL) Job: 1.
поле result из БД
{"exc_type": "WorkerLostError", "exc_message": ["Worker exited prematurely: signal 6 (SIGABRT) Job: 0."], "exc_module": "billiard.exceptions"}

При этом
Если сделать с sqlite
CELERY_RESULT_BACKEND = 'db+sqlite:///results.db'
то все работает.
И если сделать с pool=solo
celery -A web worker -S django -l info --events --concurrency=5 --pool=solo

тоже работает.
Но мне нужно чтоб с postgres работало в параллельном режиме.
  • Вопрос задан
  • 248 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы