Я имею дело со следующей проблемой:
Мое приложение анализирует документы PDF при каждом запуске. Каждый документ PDF имеет несколько страниц (обычно 1-20 страниц). Я создал следующий рабочий процесс:
- Когда запускается анализ, каждый счет-фактура разделяется на страницы
- Каждая страница анализируется индивидуально (OCR, некоторые NLP и т. Д. c.), Работает Azure Logi c приложение, которое соединяет несколько действий (SQL выборка, получение файла из Blob, запуск Azure Function1, запуск AF2, ...)
Пока все хорошо, Я распараллеливаю процесс, чтобы он выполнялся быстрее.
Чего я не понимаю, так это , как распараллелить. В частности, после того, как все страницы документа PDF проанализированы, мне нужно запустить Azure функцию 3, которая делает вывод о выводах со всех его страниц.
Я не уверен, насколько мое понимание того, как работать с azure функции верны, но я смотрю на это как на многопоточность. Я спрашиваю, как перевести следующий (очень) псевдокод в Azure облачное приложение:
list_of_tasks = []
for page in PDF_pages:
# start analyzing page in scalable Azure function, writes results to database
task = pageAnalyzer.start(page);
list_of_tasks.append(task)
# wait until all tasks done
await Tasks.whenAllDone(list_of_tasks)
# get results of all tasks from DB and conclude analysis.
finishDocumentAnalysis()
Спасибо за помощь :)
Редактировать
Мы используем Python в качестве языка программирования из-за некоторых моделей машинного обучения, которые мы используем.