Я экспериментировал с различными подходами к этому и хотел бы увидеть, что вы, ребята, считаете лучшим подходом к решению этой проблемы в Python.
По сути, у меня есть веб-сервис, который принимает запросы, предоставив один термин запроса, и продолжает выполнять серию вычислений параллельно с этим термином. Эти вычисления можно рассматривать как отдельные вызовы функций.
Идея состоит в том, что, как только поступает запрос, я вызываю функции асинхронно и удерживаю запрос до тех пор, пока не начнут поступать результаты.
Из моих исследований кажется, что использование библиотеки, подобной gevent , вероятно, лучший путь, хотя я все еще не совсем знаком с гринлетами. Кроме того, похоже, что для того, чтобы выполнить тот тип функциональности, который я ищу (для того, чтобы результаты отправлялись обратно клиенту через длинный запрос по мере их появления), мне нужно использовать специальный тип StreamServer, который это поддерживает. Сам ответ - это просто объекты JSON, которые могут быть прочитаны модулем JavaScript во внешнем интерфейсе, который, в свою очередь, обновит компонент пользовательского интерфейса, поскольку они отправляются обратно в браузер.
Каков наилучший подход к этому? Имеет ли смысл использовать что-то вроде gevent или это должно быть реализовано с помощью сопрограмм без помощи библиотеки? Я уверен, что это было сделано в прошлом многими людьми здесь, и я хотел собрать некоторые рекомендации.
Заранее большое спасибо, дайте мне знать, если вы хотите получить более подробную информацию, и я с нетерпением жду ваших предложений!