Azure functions 完成任务列表后运行任务
我有一系列需要上传的文件。上载每个文件时,将对其执行操作。上传所有文件后,我想对所有不同的文件类型执行一项任务。从技术上讲,这个过程可以在上传任何文件后运行,但如果我上传100个文件,我不希望它运行100次 我使用的是Azure函数,因此必须通过blob、表、队列或计时器触发器(或其他触发器)以某种方式触发 以下是我对如何实现这一目标的想法:Azure functions 完成任务列表后运行任务,azure-functions,Azure Functions,我有一系列需要上传的文件。上载每个文件时,将对其执行操作。上传所有文件后,我想对所有不同的文件类型执行一项任务。从技术上讲,这个过程可以在上传任何文件后运行,但如果我上传100个文件,我不希望它运行100次 我使用的是Azure函数,因此必须通过blob、表、队列或计时器触发器(或其他触发器)以某种方式触发 以下是我对如何实现这一目标的想法: 将新文件推送到blob存储 Blob触发器被激活 文件处理 将文件类型推送到表存储 清除队列 将标志推送到可视性延迟为1分钟的队列 队列已触发,使用
- 将新文件推送到blob存储
- Blob触发器被激活
- 文件处理
- 将文件类型推送到表存储
- 清除队列
- 将标志推送到可视性延迟为1分钟的队列
- 队列已触发,使用
作为附加输入IQueryable
- 获取所有表条目
- 对每种文件类型(表条目)执行任务
- 从表中删除已处理的条目
那么,这是解决这个问题的正确方法吗?有更好的方法吗?这里的挑战是,在上传文件后,您需要执行一些“完成”的任务;但是没有明确的“完成上传”事件。与每次上传文件后都必须运行完整的任务相比,您更希望进行优化 以下是一些选项:
您能解释一下,对于不同的文件类型,您希望运行的操作是什么吗?它会更新文件吗?读文件?它可以在同一个文件上运行多次吗?比如说一个研究实验室删除了一些文件。blob触发器遍历所有新文件并标准化这些文件。当所有的标准化都完成后,我们开始在每个研究的基础上进行更复杂的处理和分析(可能会更新多个研究)。我可以为m研究运行n次分析吗?可能但我只要处理m次就可以节省大量的资金和资源。它还简化了监控过程,因此如果发生错误,我们不会在同一项研究中得到n个错误。我认为这是一个非常奇怪的设计。如何确保在1分钟内上传的文件属于同一组文件?如果两名研究人员同时上传怎么办?也许你应该上传不同文件夹中的文件集,或者简单地将所有文件作为一个zip文件上传到一起(如果文件大小允许的话),我知道根据文件名,哪些文件属于哪个文件集。同时上传并不是一个真正的问题。我的经营受到业务的某些限制。我不控制如何获取文件,只控制如何处理它们。