Как настроить gunicorn для обслуживания очень длинных запросов подпроцесса - PullRequest
0 голосов
/ 16 января 2019

Я использую флягу и огнестрельное оружие в моем док-сервере.

Система в основном представляет собой платформу для оценки кода, которая принимает запрос API с кодом и возвращает вывод. (мы уже оценивали это по сравнению с использованием некоторых отложенных очередей задач, таких как rabbitmq, и эта модель работает для нас).

Вот что делает мой запрос на колбу:

  1. Принять код ввода
  2. Создать случайного пользователя Linux
  3. Использование сценария драйвера для запуска кода пользователя (в этом сценарии есть вызов ulimit -p 5 -t 5, чтобы убедиться, что код не разветвляется и не выполняет другие вредоносные действия)
  4. Следует отметить, что точка 3 обернута вокруг вызова bubblewrap, который гарантирует, что пользователь не имеет доступа для чтения и записи в любом месте
  5. После выполнения кода удалите этого случайного пользователя, созданного в 2

Все мои внешние скрипты запускаются с использованием функции check_output подпроцесса python.

Если я запускаю gunicorn без настроек, например:

gunicorn -b :5555 --access-logfile --error-logfile - wsgi:app

, а затем протестировать загрузку с помощью теста Apache. Похоже, что сервер может обрабатывать только один запрос за раз.

Каков правильный конфиг для gunicorn для моего случая?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...