繁体   English   中英

Azure 事件触发器多次触发同一个文件

[英]Azure Event Trigger fires multiple times same file

我有一个 blob 存储容器,我在其中配置了一个事件网格触发器(已创建 Blob)。 我正在通过数据工厂加载这个 blob 存储文件,很多时候很多文件可能会一次性出现在这个 blob 中。 也许我们可以以 20 个文件为例。

好消息是我的事件网格触发器正在触发并调用了 function 应用程序。 但是,我可以看到有时对于同一个文件,事件网格触发器会被触发不止一次。

在这 20 个文件中,有几个文件非常大,比如 300 MB,但其他文件非常小,比如 3KB。 所以我的疑问是,虽然这 300 MB 被解雇并且它仍在处理,但同时它再次选择相同的 300 MB 文件(因为感觉它仍然没有被读取)并多次保存在 db 中,这不是我想要的。

Azure 事件网格是这种情况下的正确方法吗?

一旦事件网格触发 Azure Function 一个事件。 在接下来的 2 分钟内,azure function 的一些回复除外。 如果没有响应,Else Event 网格将重试。

事件网格的重试默认值为 30。将其更改为 1。

现在即使对于处理时间超过 2 分钟的大文件,也不会发生第二次重复触发。

我可以看到,您打开了一个新线程来处理您的问题,该线程也基于事件处理的推推模式。

我推荐使用Push-Pull模式,其中 AEG 会将事件传递到队列存储,然后可以根据需要由 Azure 队列触发器函数以并发方式处理,请参阅此处的更多详细信息。

笔记:

  1. 消费计划AF 的默认超时时间为5 分钟,最长为10 分钟 如果此时间不足以处理大型 blob,则应使用高级计划,其中默认超时为 30 分钟,最长为 60 分钟。

  2. 如果您希望将业务逻辑保留在 ADF 管道中,请在此处查看从 azure 函数调用管道是多么容易。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM