У меня есть это маленькое приложение (склянка RESTful), оно получает заданную строку и выполняет некоторые вычисления на ней, а затем возвращает какое-то значение (передача / сбой + причина сбой).Этот тест занимает около 50 ~ 70 мсек.
В моей текущей настройке у меня есть gunicorn с несколькими рабочими (~ 1 на ядро), запускающими приложение.Меня попросили сделать это асинхронно (по сути, есть одна конечная точка, которая почти мгновенно реагирует на один поток, выполняющий вызовы).
Итак, перейдите от ответа на несколько запросов после вычисления решения, отвечая подтверждением изатем выполнение запроса с ответом.
Предложенное решение было очередью повторного выполнения, где они помещают задачи в очередь, я их решаю и через push отправляю ответ в другую очередь.
Isчто действительно лучше всего сделать?Если да, то как мне создать / управлять пулом работников, которые работают в этой очереди?
Или я создаю асинхронное приложение, которое вызывается, отвечает 200 и делает запрос асинхронного ожидания для текущего приложения?/ настроить.И как мне ответить?Выкладывание ответов в очередь на повторную передачу?
Так что же является лучшим решением?Идеи?Лучше всего определить это как: KISS, это производство, где ни один запрос не может быть отброшен, и быстрый.