如何让基于事件触发的flow每5分钟仅运行一次,避免批量创建文件重复触发通知
Power Automate流防抖通知实现方案
你当前的流使用单文件触发逻辑,每新增1个文件就会独立启动1个流实例,因此会重复推送通知,可通过以下两种方案实现5分钟内仅发1次通知的需求:
方案1:替换触发逻辑+滑动窗口聚合(推荐)
- 把原有
当文件夹下创建文件时的触发,替换为当文件创建时(仅返回属性)触发,触发路径指定为你的event folder - 进入触发的设置页,开启滑动窗口功能,设置窗口时长为5分钟,聚合维度选择按文件夹路径分组,该配置会将5分钟内该文件夹下的所有新增文件聚合到同一个流实例中处理
- 保留原有生成新文件的逻辑,调整为遍历聚合返回的所有新增文件列表,逐个生成对应文件
- 将发送通知的动作移动到遍历逻辑的末尾,所有文件处理完成后仅执行1次通知推送即可
方案2:新增通知状态标记(适合不想修改原有触发逻辑的场景)
- 提前准备1个可持久化存储的状态标记位,可选择SharePoint列表项、OneDrive单独的txt标记文件、或Dataverse表字段作为存储载体
- 原有触发逻辑不变,流启动后首先读取标记位的状态:
- 若标记位显示最近5分钟内已经推送过通知,仅执行生成新文件的逻辑,跳过通知步骤
- 若标记位显示未推送过通知,先完成新文件生成逻辑,再推送通知,同时更新标记位为已推送,并设置5分钟的自动过期时间,到期后标记位自动重置为未推送状态
若使用OneDrive txt文件作为标记载体,可直接在文件中写入最后一次推送通知的时间戳,后续流启动时读取时间戳与当前时间做差值计算,差值小于5分钟即可跳过通知步骤
原流参考截图

内容的提问来源于stack exchange,提问作者Prashant Kumar
相关产品推荐
相关产品推荐

