WORKER TIMEOUT
означает, что ваше приложение не может ответить на запрос в течение определенного периода времени. Вы можете установить это, используя настройки тайм-аута Gunicorn . Некоторое приложение требует больше времени для ответа, чем другое.
Еще одна вещь, которая может повлиять на это, это выбор типа работника.
Синхронные работники по умолчанию предполагают, что ваше приложение связано с ресурсами с точки зрения загрузки процессора и сети. Обычно это означает, что ваше приложение не должно делать ничего, что занимает неопределенное количество времени. Примером чего-то, что занимает неопределенное количество времени, является запрос в Интернет. В какой-то момент внешняя сеть выйдет из строя таким образом, что клиенты будут накапливаться на ваших серверах. Таким образом, в этом смысле любое веб-приложение, которое отправляет исходящие запросы API, получит выгоду от асинхронного работника.
Когда у меня возникла та же проблема, что и у вас (я пытался развернуть свое приложение с помощью Docker Swarm), я попытался увеличить время ожидания и использовать другой тип рабочего класса. Но все не удалось.
И затем я внезапно понял, что ограничил свой ресурс слишком низким для службы внутри моего файла компоновки. Это вещь замедлила приложение в моем случае
deploy:
replicas: 5
resources:
limits:
cpus: "0.1"
memory: 50M
restart_policy:
condition: on-failure
Поэтому я предлагаю вам проверить, что замедляет работу вашего приложения.
Gunicorn==19.3.1
иgevent==1.0.1