Python Fastapi Глобальная переменная в контексте потока выполнения запроса

Предположим, бэкенд работает в связке Python+Fastapi и принимает через сокет GET запрос

Вместе с запросом пользователь отправляет идентификатор сессии. Этот идентификатор сессии мне нужен из "глубоких" функций моего приложения.

Скажем, имем такую цепочку вызовов (от контроллера до бизнес-функций приложения) A -> B -> C -> D

A имеет доступ к этой сессии, так как у него есть ссылка на HttpRequest. Я могу передать эту ссылку из A в B. Потом из B в C. Потом из C в D. Но, если только D нужен доступ к этой переменной, чтобы, скажем, сохранить имя отправителя запроса, или авторизовать его, то иметь этот доступ в B C бессмысленно.

Я бы хотел записать эту переменную куда нибудь в оперативную память в A глобально, и обратиться к ней из D, но это сработает, если пользователь всего один. В случае, если придет два запроса в одно время, то эта переменная "перетрется" и возникнет проблема гонки.

Если бы я использовал свой веб-сервер, возможно, я бы мог записать ее в контекст потока, можно ли сделать что-то похожее с fastapi?


Ответы (0 шт):