ThreadPoolExecutor(рабочие) увеличивает использование памяти

#python #django #multithreading

Вопрос:

я извлекаю текст из изображений(изображения в форме URL-адресов) с помощью когнитивных служб azure посредством многопоточности в django, когда я передаю список URL-адресов изображений в API django, он успешно извлекает текст из когнитивных служб azure, но использование памяти увеличивается всякий раз, когда я передаю список URL-адресов изображений в api django, и он не выпустил его после завершения

API django

 def multithreading(request):
        images_url = request['urls']
        with ThreadPoolExecutor(2) as ex:
            res = ex.map(azure_text, images_url )
        print(list(res))
 

Извлечение текстового кода

 def azure_text(url)
        read_response = computervision_client.read(url.strip(), raw=True)
        # Get the operation location (URL with an ID at the end) from the response
        read_operation_location = read_response.headers["Operation-Location"]
        # Grab the ID from the URL
        operation_id = read_operation_location.split("/")[-1]

        # Call the "GET" API and wait for it to retrieve the results 
        while True:
            read_result = computervision_client.get_read_result(operation_id)
            if read_result.status not in ['notStarted', 'running']:
                break
            time.sleep(0.02)
        text = ''
        # Print the detected text, line by line
        if read_result.status == OperationStatusCodes.succeeded:
            for text_result in read_result.analyze_result.read_results:
        #         print(text_result.lines)
                for line in text_result.lines:
    #                 print(line.text)
                    text =' ' line.text
        #             print(line.bounding_box)
        return text