当前位置: 首页 > 知识库问答 >
问题:

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

申屠洛华
2023-03-14

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

好消息是我的事件网格触发器启动了,函数app被调用。然而,我发现有时对于同一个文件,事件网格触发器被触发了不止一次。

在这20个文件中,很少有文件非常大,比如300 MB,但其他文件非常小,比如3KB。所以我的怀疑是,当这个300 MB被触发并且仍在处理时,并行地它再次选择相同的300 MB文件(因为它感觉它仍然没有被读取),并且多次保存在数据库中,这不是我想要的。

Azure事件网格是否是此方案的正确方法?

共有2个答案

柏高洁
2023-03-14

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

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

笔记:

>

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

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

  • 古彦
    2023-03-14

    一旦事件网格触发事件的Azure Function。它将在接下来的2分钟内从azure函数中排除一些回复。如果没有响应,其他事件网格将重试。

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

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

     类似资料:
    • 我的Python Azure函数配置文件()定义了一个Blob存储触发器。 当Azure功能唤醒时(即,Live Metrics中显示的服务器在一段睡眠时间后变为在线),它将处理所有现有Blob,而不管哪些Blob已经生成触发事件。 我注意到< code > azure-web jobs-hosts/blob receipts 文件夹中填充了< code>sandboxhost637nnn文件夹。

    • 我对TextWatcher有一个恼人的问题。我一直在网上搜索,但什么也找不到。如果有人能帮助我,我将不胜感激。 由于某些原因,在一次文本更改时对TextWatcher事件的调用是不稳定的。有时它们被触发一次(就像它们应该被触发的那样),有时两次,有时三次。不知道为什么,整个事情都很直截了当。有时,PostTextChanged()上的可编辑参数在toString()和length()中返回空值。

    • 我的Azure Functions事件网格触发器没有触发。我是这么做的。 Key Vault设置为将事件报告给EventGrid系统主题 此主题由将事件传递到Azure Function的订阅订阅 函数有一个事件网格触发器(见下文,默认由门户创建): 我用谷歌搜索了一下,对于这样的入门级方案,没有更多的指导。我想的也许是授权...订阅如何触发该函数?在此过程中(通过GUI /门户配置),没有任何关

    • 问题内容: 我试图用Javascript编写视频扑克游戏,以降低其基础知识,但是我遇到了一个问题,其中jQuery click事件处理程序多次触发。 它们被附加到用于下注的按钮上,并且对于在游戏过程中第一手下注(仅触发一次)非常有效。但是在秒针下注中,每次按下一个下注或下注按钮都会触发两次点击事件(因此,每次按下正确的赌注量是两次)。总体而言,在按一次下注按钮时,触发单击事件的次数遵循此模式序列的

    • 我在 Azure 数据工厂中具有事件触发器,它在 Azure Blob 存储中创建新 Blob 时触发。但我的触发器在创建 Blob 时没有触发。 已按照以下链接进行操作,但卡在下面提到的点:Azure 数据工厂:事件未启动管道。 环境详情: 事件网格已注册,ADF为v2并将参数传递给管道。我的问题是我是否需要激活Azure存储事件订阅?如果是这样,我的事件处理程序应该是什么(在我的情况下是ADF

    • 我只需要在更新容器中的所有4行时运行函数。我还没有在网上找到任何关于这是否可能的信息。如果你能告诉我这是否可能,如果可能的话,怎么做,那就太好了。