Как получить данные запроса родительского потока для всех дочерних потоков. используя DRF
Как получить данные запроса родительского потока для всех дочерних потоков. используя DRF.
Я храню данные запроса, используя промежуточное ПО, и я получаю этот запрос в подпотоке, но не получаю эти значения.
middleware.py
class GlobalHttpRequestMiddleware(MiddlewareMixin):
global_request.set_request(request)
global_request.py
class GlobalRequest(local):
"""Thread local class to store Http request object"""
def __init__(self):
self.__request: Optional[HttpRequest] = None
def get_request(self) -> Optional[HttpRequest]:
""" getter() to get the request"""
return self.__request
def set_request(self, request: HttpRequest) -> None:
""" setter() to set the request"""
self.__request = request
global_request = GlobalRequest()
class ThreadGlobal:
"""Create a Custom request object for a thread"""
def __init__(self, current_scheme: Optional[str], meta_data: Optional[dict]):
self.current_scheme = current_scheme
self.meta_data = meta_data
sample.py
request = global_request.get_request()
thread = CustomThread(target=Trigger.samplefn,
args=([a1, a2]),
initialize_env=_set_custom_app_env)
thread.start()
thread_callback.py
def _set_custom_app_env() -> Callable[[], None]:
# getting the global request from current thread and storing it into the variable to pass inside child function
global_request_data = global_request.get_request()
currect_scheme = global_request_data._current_scheme_host
meta_data = global_request_data.META
request = ThreadGlobal(currect_scheme, meta_data)
def _set_env() -> None:
'''This inner function will be executed inside the child threads'''
global_request.set_request(request)
return None
return _set_env
в global_request.set_request(request) в боковой функции _set_env closer я получаю запрос NONE почему... Дайте решение