Довольно давно я хотел начать любимый проект, который будет нацелен на пора стать панелью управления веб-хостингом, но в основном ориентированной на хостинг Python - это означает, что я хотел бы дать пользователям возможность генерировать / запускать Django / другие проекты фреймворков прямо из панели. Мне казалось, что у меня есть нашел идеальный инструмент для создания моего приложения: CherryPy.
Это позволило бы мне делать это так, как я хочу, создавая приложение с собственным HTTP / Сервер HTTPS, а также все на моем любимом языке программирования.
Но теперь возникает новый вопрос: поскольку CherryPy является многопоточным сервером, будет ли это правильно для такого рода задач?
Будет много трудоемких задач, поэтому, если одна из блокируются задачи, остальные пользователи, пытающиеся получить доступ к другим страницам, будут оставаться в ожидании и в конечном итоге получить тайм-аут.
Я полагаю, что такого рода проблемы не возникнут на сервере, основанном на вилке.
Что бы вы посоветовали?






Серверы «с резьбой» и «на основе вилки» эквивалентны. «Потоковый» сервер имеет несколько потоков выполнения, и если один блокируется, остальные будут продолжены. На «форк-сервере» выполняется несколько процессов, и если один из них блокируется, остальные будут продолжены. Единственное отличие состоит в том, что поточные серверы по умолчанию разделяют память между потоками, а серверы, основанные на разветвлении, по умолчанию не разделяют память.
Еще один момент - модуль «подпроцесс» не является потокобезопасным, поэтому, если вы попытаетесь использовать его из CherryPy, вы получите странные ошибки. (Это Ошибка Python 1731717)
Почему вы не приняли во внимание GIL?
Не уверен, что вы в курсе - но Webfaction.com когда-то был: python-hosting.com и их панель делает многое из того, что вы описываете. Конечно, создатель CherryPy запустил Webfaction :-)