Пишу в Development, потому что это всё-таки не веб ни разу.


У меня есть пачка скриптов на питоне, каждый из которых вызывает цепочку внешних утилит и генерирует бинарный выходной файл. Время работы скрипта ~2-3 минуты, большую часть которого (99%) он проводит в ожидании завершения дочерних процессов.


Я хочу сделать из этих скриптов HTTP-сервер, т. е. вместо


python3 ./script1.py --foo=bar > output


писать


curl -fsSL localhost:8000/script1 -G -d foo=bar -o output


Я набросал прототип на http.server, но мне не нравится, что приходится заниматься разбором URL и ещё много чего делать вручную. Плюс я бы хотел уметь обрабатывать несколько запросов одновременно. Да, я знаю про GIL, но поскольку большая часть работы происходит во внешних процессах, как минимум в теории GIL не должен мешать.


Так вот, как это сделать?



  • посоветуйте минимальный HTTP-фреймворк, который бы занимался принятием запросов, разбором URL и обработкой эксепшенов, без какой-либо связи с вебом?

  • часть про «несколько запросов одновременно» делать через асинхронщину или через потоки? Существуют ли асинхронные эквиваленты subprocess.run / subprocess.Popen?









 ,






URL записи