#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