170 похожих чатов

Части моего приложения нужен один конфиг гуникорна, другой части другой.

Если подробнее, то для одной части я должен использовать процессы и сразу перезапускать их, а для другой треды и ничего не перезапускать.
Сначала думал может можно как то сконфигурировать гуникорн так, что для одних эндпоинтов одни правила, для других другие. Не нашел ничего подобного. Потом стал смотреть в сторону нескольких приложений, которые двумя командами поднимаются. Но тогда нужно их на разных портах поднимать, что тоже не желательно.

Есть ли какой то вариант без использования нгинкса и других прокси сделать то что я хочу на одном порте? Чтобы на одном ресурсе один конфиг гуникорна был, на другом другой?

8 ответов

18 просмотров

gunicorn ничего не знает про эндпоинты. роутинг это уже ответственность приложения, которое крутится внутри gunicorn

Мб я не совсем понял, в чем вообще проблема, маловато информации, если тебе нужны процессы для обработки чего-то тяжелого, ты можешь использовать ProcessPoolExecutor, не обязательно гуникорну процессы открывать

Niko-Buretti Автор вопроса
Jack Bolt
Мб я не совсем понял, в чем вообще проблема, малов...

Мне нужны процессы и сразу перезапускать их, потому что я использую либу gdal, у которой какие то проблемы с питоном и в мультитрединге начинает память течь по пока что непонятным причинам. Плюс она очень cpu bound. Но другая часть приложения использует безопасную часть этой либы, в которой память не течет, плюс нужно много препроцессинга делать, т.е. много работы на этапе загрузки приложения (загрузить огромный файл с диска). И эта часть приложения должна работать быстро, хотелось бы сэкономить хотя бы на препроцессинге. Вот и получается, что мне нужны разные конфиги. Может конечно можно как то не через гуникорн запускать обработку в отдельном процессе и чтобы по окончанию процесс перезапускался, но мне показалось, что это что-то сомнительное.

Niko Buretti
Мне нужны процессы и сразу перезапускать их, потом...

> Мне нужны процессы и сразу перезапускать их, потому что я использую либу gdal, у которой какие то проблемы с питоном и в мультитрединге начинает память течь по пока что непонятным причинам. Плюс она очень cpu bound. Почему бы эту часть действительно не вынести в отдельный фоновый сервис. Не ясно только зачем эта часть должна быть WSGI приложением.

Niko-Buretti Автор вопроса
Alex
> Мне нужны процессы и сразу перезапускать их, пот...

Это не обязательно wsgi, просто мне нужно апи и я вот пользуюсь фреймворками, которые упрощают его создание. Может я тебя не так понял... Можешь пояснить по-подробнее?

Niko Buretti
Это не обязательно wsgi, просто мне нужно апи и я ...

Взять какую-нибудь простую очередь сообщений и вынести CPU-bound процессинг в отдельный воркер.

Niko-Buretti Автор вопроса
Alex
Взять какую-нибудь простую очередь сообщений и вын...

А ну я понял. Да, идея хорошая, я тоже к ней пришел, просто подумал что можно временно как то решить попроще.

Niko-Buretti Автор вопроса
Alex
Взять какую-нибудь простую очередь сообщений и вын...

А что можно использовать для упрощения этого, чтобы воркер запускался на какое то сообщение и потом завершался?

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта