开发者社区 > 云原生 > Serverless > 正文

Serverless工作流并行步骤(type:foreach)怎么做异常处理?

Serverless工作流并行步骤(type:foreach)怎么做异常处理? 当我把errorMappings和catch节点放在foreach这一level的时候,会报错“Additional property catch is not allowed”和“Additional property errorMappings is not allowed”。而我把这两个节点放在内部循环步骤(type:task)这个level的时候,会报错“The goto target 'ParallelCallback' must be on the same level as the step 'TransToTargetFormat'.”

展开
收起
冰激凌甜筒 2023-04-04 16:35:13 415 0
2 条回答
写回答
取消 提交回答
  • goto只能在同级的流程间跳转,你可以把错误处理的流程放到 foreach 内,此回答整理自钉群“【客】云客服(客服工作台)产品服务群-官方”

    2023-04-04 17:03:45
    赞同 展开评论 打赏
  • 随心分享,欢迎友善交流讨论:)

    对于Serverless的并行步骤(type:foreach),异常处理的正确做法是在内部循环步骤(type:task)的level上进行处理。具体操作可以按照以下步骤进行:

    1、在foreach的“itemsPath”节点中,指定需要循环的数据数组。

    2、在foreach的“batchSize”节点中,指定每个批次需要处理的数据数量。

    3、在foreach的“parallelization”节点中,指定并行处理的级别。

    4、在foreach的内部循环步骤(type:task)的level上,添加“errorMappings”和“catch”节点进行异常处理。

    5、在内部循环步骤(type:task)中,使用try-catch语句对可能发生异常的代码进行异常捕获和处理。

    6、如果需要在内部循环步骤(type:task)中跳出整个并行步骤,则可以使用“goto”语句加上对应的跳转目标。

    注意,需要将“goto”语句的目标放在并行步骤(type:foreach)的level上,而不能放在内部循环步骤(type:task)的level上,否则会报错“The goto target 'xxx' must be on the same level as the step 'xxx'.”。

    2023-04-04 16:38:44
    赞同 展开评论 打赏

快速交付实现商业价值。

相关电子书

更多
All in Serverless 阿里云核心产品全面升级 立即下载
AIGC 浪潮之上,森马的 Serverless 实践之旅 立即下载
极氪大数据 Serverless 应用实践 立即下载