Flow 自己触发自己导致无限循环怎么防
现象#
一条订单打标签再改备注的工作流,几分钟内产生上百条运行记录,同一订单反复出现,后台调用量异常升高。
原因#
- 动作修改了触发该工作流的事件源,例如 Order updated 里加标签又触发一次自身。
- Flow 不区分事件来自人工操作还是自己的动作,满足条件就再跑一轮。
- 多条工作流监听同一事件并互相改写同一字段,形成 A 到 B 再回到 A 的环路。
- 条件里缺少已处理标记,动作产生的结果本身就变成了下一次触发的输入。
处理步骤#
- 在 最近运行 按订单号筛选,确认同一订单短时间内出现多条同触发器运行。
- 打开工作流,检查动作是否修改了触发器监听的对象,例如在
Order updated里加标签。 - 增加守护条件:判断
order.tags是否含processed。 - 打
processed,条件用tag_not:processed。 - 必须回写同一对象时,改用
计划时间加获取订单数据批量处理,避开事件回环。
验收标准#
触发一次后,最近运行里同一订单只有一条记录,随后十分钟内没有同源新增运行。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。