Как получить данные запроса родительского потока для всех дочерних потоков. используя 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 почему... Дайте решение

Вернуться на верх