Длительное выполнение задачи Celery приводит к тому, что mysql 104 Connection reset by peer

В своем Django-приложении я использую celery для обработки очень длительных задач конвертации (кодирование видео, аудио и изображений). В целом все работает, как ожидалось, но иногда выполнение задачи занимает очень много времени (здесь речь идет о 6 часах или более). В самом конце каждой из этих задач конвертирования запускается операция обновления моей базы данных:

Files.objects.filter(pk=files_obj).update(...

И именно в этот момент моя задача celery обрывается с таким сообщением:

django.db.utils.OperationalError: (2006, "MySQL server has gone away (ConnectionResetError(104, 'Connection reset by peer'))")

>

Полную трассировку можно найти здесь: https://pastebin.com/qKB5KdpR

В настоящее время мой settings.py для соединений с базой данных выглядит следующим образом:

import pymysql
pymysql.install_as_MySQLdb()
...
# MySQL
DATABASES = {
    'default': {
        'ENGINE': 'django_prometheus.db.backends.mysql',
        # 'ATOMIC_REQUESTS': True,
        'STORAGE_ENGINE': 'InnoDB',
        'CONN_MAX_AGE': 600,
        'OPTIONS': {
            'init_command': 'SET innodb_strict_mode=1',
            'connect_timeout': 600,
            'charset': 'utf8',
        },
        'NAME': env.str('MYSQL_DATABASE'),
        'USER': env.str('MYSQL_USER'),
        'PASSWORD': env.str('MYSQL_PASSWORD'),
        'HOST': env.str('MYSQL_HOST'),
        'PORT': env.str('MYSQL_PORT'),
    }
}
DEFAULT_AUTO_FIELD = 'django.db.models.AutoField'
...

Увеличение CONN_MAX_AGE или connect_timeout не имеет для меня особого смысла, так как задачи, которые выполняются всего 3 или 4 часа. обрабатываются нормально без такого поведения.

В настоящее время я предполагаю, что это поведение специфично для pymysql. Может быть, есть таймаут по умолчанию?

Заранее спасибо.

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