Django (2.11) одновременных (в течение 10 мс) идентичных HTTP-запросов - PullRequest
0 голосов
/ 03 марта 2020

Рассмотрим API POST / PUT REST (с использованием DRF).

Если сервер получает запрос1 и в течение нескольких мс запрос2 с идентичным всем, что и запрос1 (дублирующий запрос), существует ли способ избежать выполнения запроса2 каким-либо Django способом? Или я должен иметь дело с этим вручную в каком-то состоянии?

Любые входные данные будут высоко оценены.

1 Ответ

0 голосов
/ 03 марта 2020

Ничего нестандартного в этом нет, поэтому вам нужно написать что-то свое, возможно, вам лучше всего использовать специальное промежуточное ПО (https://docs.djangoproject.com/en/3.0/topics/http/middleware/), так как тогда оно будет работать над всеми Запросы. Вам нужно было бы собирать и проверять запросы, чтобы вам понадобилось какое-то быстрое хранилище, например хранилище памяти.

Вы также можете заглянуть в библиотеку python asynco - https://docs.python.org/3/library/asyncio-sync.html

Другим возможным решением будет использование очереди сообщений FIFO, настроенной на поддержку дублирование на основе контента. Это превратит запрос в отложенный процесс, хотя, возможно, он не будет соответствовать вашим потребностям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...