Как вернуть данные из CherryPy BackgroundTask, работающего как можно быстрее
Я создаю веб-сервис для итеративной пакетной обработки данных с использованием CherryPy. Идеальный рабочий процесс выглядит следующим образом:
Пользователи отправляют данные в сервис для обработкиКогда задача обработки свободна, она собирает данные в очереди и запускает другую итерациюПока задание обрабатывается, пользователи помещают больше данных в очередь для следующей итерацииПосле завершения текущей итерации результаты передаются обратно, чтобы пользователи могли получить их, используя один и тот же API.Задание начинается снова со следующей партии данных в очереди.Ключевое соображение здесь заключается в том, что обработка должна выполняться как можно быстрее с каждой итерацией, начинающейся, как только заканчивается предыдущая, независимо от количества данных в очереди. Там нет верхней границы того, сколько времени может занять каждая итерация, поэтому я не могу создать фиксированное расписание для ее выполнения.
Есть несколько примеров использованияBackgroundTask
(как этот) но мне еще предстоит найти тот, который имеет дело с возвратом данных, или тот, который имеет дело с задачами, выполняемыми как можно быстрее, а не по фиксированному расписанию.
Я не преданBackgroundTask
решение, так что если кто-нибудь может предложить альтернативу, я был бы более чем счастлив. Такое ощущение, что в рамках есть решение.