Я использую флягу и огнестрельное оружие в моем док-сервере.
Система в основном представляет собой платформу для оценки кода, которая принимает запрос API с кодом и возвращает вывод. (мы уже оценивали это по сравнению с использованием некоторых отложенных очередей задач, таких как rabbitmq, и эта модель работает для нас).
Вот что делает мой запрос на колбу:
- Принять код ввода
- Создать случайного пользователя Linux
- Использование сценария драйвера для запуска кода пользователя (в этом сценарии есть вызов
ulimit -p 5 -t 5
, чтобы убедиться, что код не разветвляется и не выполняет другие вредоносные действия)
- Следует отметить, что точка 3 обернута вокруг вызова
bubblewrap
, который гарантирует, что пользователь не имеет доступа для чтения и записи в любом месте
- После выполнения кода удалите этого случайного пользователя, созданного в 2
Все мои внешние скрипты запускаются с использованием функции check_output
подпроцесса python.
Если я запускаю gunicorn без настроек, например:
gunicorn -b :5555 --access-logfile --error-logfile - wsgi:app
, а затем протестировать загрузку с помощью теста Apache. Похоже, что сервер может обрабатывать только один запрос за раз.
Каков правильный конфиг для gunicorn для моего случая?