SQLALCHEMY: запись в базе данных после того, как ответ был отправлен
-
26-09-2019 - |
Вопрос
У меня есть простая служба, которая делает примерно следующее:
- Клиент HTTP подключается к серверу
- Сервер записывает сессию клиента и временем времени в базу данных, и в большинстве случаев просто возвращает пустой ответ
(Случаи, когда это делает реальную работу, и возврат фактические данные не относятся к этому вопросу)
Чтобы вернуть этот ответ как можно скорее, я хотел бы написать информацию в Memcache в тело запроса обработчика (потому что memcache будет быстрым), а для создания отдельной резьбы, где другая функция, использующая SQLAlchemy, напишет ее на постоянную место хранения. Таким образом, я смогу вернуться сразу после записи на Memcache и нерести поток, а обработчик запроса не придется ждать, пока SQLalchemy не сохраняет информацию в базе данных.
Имеет ли это смысл? Если да, как я должен реализовать это?
Решение
Вы могли бы использовать что-то вроде Очередь распределенной целеводства разгрузить обработку на другие машины. Это требует настройки отдельной инфраструктуры, но позволит выполнять задачи от веб-запросов для обработки на заднем плане, в то время как http Repsonse к запросу можно немедленно возвращать.