【发布时间】:2020-06-08 00:07:43
【问题描述】:
我正在处理以下问题:
我的应用程序在触发时分析 PDF 文档。每个 PDF 文档有多个页面(通常为 1-20 页)。我创建了以下工作流程:
- 触发分析时,每张发票按页拆分
- 每个页面都是单独的分析器(OCR、一些 NLP 等),运行连接多个操作(SQL 提取、从 Blob 获取文件、运行 Azure Function1、运行 AF2 等)的 Azure Logic 应用程序
到目前为止一切顺利,我将过程并行化以使其执行得更快。
我不明白的是,如何去并行化。具体来说,在分析完 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 作为编程语言。
【问题讨论】:
-
您的描述是每个页面触发一个带有逻辑应用程序的功能,但是您的代码正在分析整个 pdf 文件中的 for 循环。那么你的问题点是什么?
标签: python azure cloud azure-functions