Синхронизация работы, выполняемой функциями Azure - PullRequest
1 голос
/ 24 февраля 2020

Я имею дело со следующей проблемой:

Мое приложение анализирует документы PDF при каждом запуске. Каждый документ PDF имеет несколько страниц (обычно 1-20 страниц). Я создал следующий рабочий процесс:

  1. Когда запускается анализ, каждый счет-фактура разделяется на страницы
  2. Каждая страница анализируется индивидуально (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 в качестве языка программирования из-за некоторых моделей машинного обучения, которые мы используем.

1 Ответ

2 голосов
/ 24 февраля 2020

Вам нужно взглянуть на долговечные функции, это фактически слой поверх стандартных функций, которые позволяют вам делать именно такие вещи, и они обрабатывают все сложные части разветвления и возврата.

Проверьте этот документ , чтобы начать.

Этот обзорный документ также полезен для понимания работы долговременных функций и рассказывает о некоторых других распространенных случаях / шаблонах.

Разветвитель шаблон описан в приведенном выше обзоре с хорошей диаграммой, на что указывает @silent в комментариях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...