“无限循环”触发工作流如何处理?-九游平台
由于dwr只能按触发器前缀、后缀、事件源类型等条件触发工作流,所以可能存在出现“无限循环”的场景。如果出现“无限循环”,只能先删除桶的事件触发器。主要有以下两个场景:
场景1:触发器源桶和函数执行输出目标桶是同一个桶的无限循环
案例1:使用dwr内置函数触发“无限循环”
用户创建一条工作流workflowa,在工作流中使用了内置的“媒资转码”函数,且配置“媒资转码”函数的转码输出桶为桶a。然后,在桶a上配置触发器关联工作流workflowa。如果自定义函数输出的对象前缀或后缀匹配触发器triggera的前后缀条件(比如:前缀和后缀不配置,或者对象满足触发器条件),则转码的输出会再次触发工作流,从而导致用户工作流不停的执行,出现“无限循环”。


案例2:自定义函数触发“无限循环”
用户创建一条工作流workflowa,在工作流中使用了自定义函数,且自定义函数会向桶a输出对象。然后,在桶a上配置触发触发器triggera关联工作流workflowa。如果自定义函数输出的对象前缀或后缀匹配触发器triggera的前后缀条件(比如:前缀和后缀不配置,或者对象满足触发器条件),则自定义函数的输出会再次触发工作流,从而导致用户工作流不停的执行,出现“无限循环”。


后缀.mp4可以匹配所有后缀是mp4的对象。
场景2:触发器源桶和函数执行输出目标桶是不同桶的无限循环
案例1:使用内置函数触发“无限循环”
用户创建一条工作流workflowa,在工作流中使用了内置的“媒资转码”函数,且配置“媒资转码”函数的转码输出桶为桶a。用户创建一条工作流workflowb,在工作流中使用了内置的“媒资转码”函数,且配置“媒资转码”函数的转码输出桶为桶b。然后,在桶b上配置触发器triggera关联工作流workflowa,在桶a上配置触发器triggerb关联工作流workflowb。如果,triggera触发workflowa生成的对象匹配上了triggerb的条件(比如:两个触发器的前缀和后缀不配置),最终,转码的输出会再次触发工作流,从而导致用户工作流workflowa和workflowb不停的执行,出现“无限循环”。
说明:triggera和triggerb都不指定前后缀




相关文档
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨