Как исправить ошибку Gunicorn Timeout в Django?
Мое приложение Django использует gunicorn в качестве сервера. Оно позволяет пользователям загружать файлы. Недавно я получил следующую ошибку при загрузке некоторых файлов:
0%| | 0/1121 [00:00<?, ?frames/s][2024-06-19 18:59:53 +0000] [1] [CRITICAL] WORKER TIMEOUT (pid:7)
0%| | 0/1121 [00:06<?, ?frames/s]
web-1 | [2024-06-19 13:59:53 -0500] [7] [INFO] Worker exiting (pid: 7)
web-1 | [2024-06-19 18:59:53 +0000] [1] [ERROR] Worker (pid:7) exited with code 1
web-1 | [2024-06-19 18:59:53 +0000] [1] [ERROR] Worker (pid:7) exited with code 1.
web-1 | [2024-06-19 18:59:53 +0000] [32] [INFO] Booting worker with pid: 32
Иногда (даже для одного и того же файла) я получаю следующую ошибку:
[2024-06-18 08:56:09 -0500] [19] [INFO] Worker exiting (pid: 19)
web-1 | [2024-06-18 13:56:10 +0000] [1] [ERROR] Worker (pid:19) was sent SIGKILL! Perhaps out of memory?
web-1 | [2024-06-18 13:56:10 +0000] [34] [INFO] Booting worker with pid: 34
web-1 | /usr/local/lib/python3.11/site-packages/whisper/__init__.py:63: UserWarning: /root/.cache/whisper/tiny.pt exists, but the SHA256 checksum does not match; re-downloading the file
web-1 | warnings.warn(
78%|█████████████████████████████ | 56.6M/72.1M [00:24<00:05, 2.74MiB/s][2024-06-18 13:57:18 +0000] [1] [CRITICAL] WORKER TIMEOUT (pid:34)
79%|█████████████████████████████ | 56.7M/72.1M [00:24<00:06, 2.42MiB/s]
web-1 | [2024-06-18 08:57:18 -0500] [34] [INFO] Worker exiting (pid: 34)
web-1 | [2024-06-18 13:57:19 +0000] [1] [ERROR] Worker (pid:34) exited with code 1
web-1 | [2024-06-18 13:57:19 +0000] [1] [ERROR] Worker (pid:34) exited with code 1.
web-1 | [2024-06-18 13:57:19 +0000] [45] [INFO] Booting worker with pid: 45
Я получаю эту ошибку только иногда, в то время как в другое время я просто получаю internal server error
даже для тех же самых файлов. Я получаю ошибку для некоторых маленьких файлов, но неизменно для больших файлов. После устранения неполадок я понял, что ошибка всегда возникает через 30 секунд, что наводит меня на мысль, что это связано с ошибкой таймаута Gunicorn. Однако я читал, что простое увеличение лимита таймаута - это только пластырь. Поэтому сейчас я ищу альтернативные варианты. Мое приложение запущено в контейнере Docker. Ошибки возникают как во время разработки, так и во время производства. В настоящее время я пытаюсь исправить это локально в разработке.
Ошибка возникает после загрузки файла. Мой сайт транскрибирует аудиофайл в текст, а затем возвращает текстовый файл пользователю. Ошибка возникает до того, как сайт сможет вернуть файл. Обратите внимание, что ошибка возникает только для 1. длинных аудиофайлов (даже если файл небольшой) и 2. кажущихся произвольными файлов. Даже если файл небольшой и длина аудио невелика, он выдаст ошибку примерно через 30 секунд.
Любое предложение будет оценено по достоинству.