
# "无限循环"触发工作流如何处理？
由于DWR只能按触发器前缀、后缀、事件源类型等条件触发工作流，所以可能存在出现"无限循环"的场景。如果出现"无限循环"，只能先删除桶的事件触发器。主要有以下两个场景：
#### 场景1：触发器源桶和函数执行输出目标桶是同一个桶的无限循环
![](https://support.huaweicloud.com/dwr_faq/zh-cn_image_0000001259833827.png)
**案例1：使用DWR内置函数触发"无限循环"**
用户创建一条工作流workflowA，在工作流中使用了内置的"媒资转码"函数，且配置"媒资转码"函数的转码输出桶为桶A。然后，在桶A上配置触发器关联工作流workflowA。如果自定义函数输出的对象前缀或后缀匹配触发器triggerA的前后缀条件（比如：前缀和后缀不配置，或者对象满足触发器条件），则转码的输出会再次触发工作流，从而导致用户工作流不停的执行，出现"无限循环"。
图1工作流配置workflowA   
![](https://support.huaweicloud.com/dwr_faq/zh-cn_image_0000001260073823.png)
图2工作流触发器triggerA配置   
![](https://support.huaweicloud.com/dwr_faq/zh-cn_image_0000001215353936.png)
**案例2：自定义函数触发"无限循环"**
用户创建一条工作流workflowA，在工作流中使用了自定义函数，且自定义函数会向桶A输出对象。然后，在桶A上配置触发触发器triggerA关联工作流workflowA。如果自定义函数输出的对象前缀或后缀匹配触发器triggerA的前后缀条件（比如：前缀和后缀不配置，或者对象满足触发器条件），则自定义函数的输出会再次触发工作流，从而导致用户工作流不停的执行，出现"无限循环"。
图3工作流配置workflowA   
![](https://support.huaweicloud.com/dwr_faq/zh-cn_image_0000001215033958.png)
图4触发器配置triggerA   
![](https://support.huaweicloud.com/dwr_faq/zh-cn_image_0000001260073825.png)
后缀.mp4可以匹配所有后缀是mp4的对象。
#### 场景2：触发器源桶和函数执行输出目标桶是不同桶的无限循环
![](https://support.huaweicloud.com/dwr_faq/zh-cn_image_0000001259953761.png)
**案例1：使用内置函数触发"无限循环"**
用户创建一条工作流workflowA，在工作流中使用了内置的"媒资转码"函数，且配置"媒资转码"函数的转码输出桶为桶A。用户创建一条工作流workflowB，在工作流中使用了内置的"媒资转码"函数，且配置"媒资转码"函数的转码输出桶为桶B。然后，在桶B上配置触发器triggerA关联工作流workflowA，在桶A上配置触发器triggerB关联工作流workflowB。如果，triggerA触发workflowA生成的对象匹配上了triggerB的条件（比如：两个触发器的前缀和后缀不配置），最终，转码的输出会再次触发工作流，从而导致用户工作流workflowA和workflowB不停的执行，出现"无限循环"。
说明：triggerA和triggerB都不指定前后缀
图5工作流配置workflowA   
![](https://support.huaweicloud.com/dwr_faq/zh-cn_image_0000001260073823.png)
图6工作流配置workflowB   
![](https://support.huaweicloud.com/dwr_faq/zh-cn_image_0000001215193946.png)
图7工作流触发器triggerA配置   
![](https://support.huaweicloud.com/dwr_faq/zh-cn_image_0000001215353936.png)
图8触发器triggerB配置   
![](https://support.huaweicloud.com/dwr_faq/zh-cn_image_0000001260193793.png)
