我有 AWS SWF 工作流,它根据输入文件的数量在运行时创建许多子工作流。对于 x 个输入文件,它将创建 x 个子工作流。当输入文件数约为 400 并成功创建和执行 400 个子工作流时,它工作正常。
问题是 - 当我的输入有大约 500 个文件或更多文件时,它会成功启动许多子工作流,但随后会自动取消其中一些。我尝试了不同的配置,但没有任何效果。
我认为 AWS 对子工作流数量的限制是 1000,所以这不应该是问题。
当前子工作流配置:执行开始到关闭超时:2 小时 1 分钟任务开始关闭超时:1 分 30 秒
主要工作流程配置:执行开始到关闭超时:9 小时任务开始关闭超时:1 分 30 秒
我的猜测是工作流代码中抛出了一些异常,默认情况下会取消同一取消范围内的工作流。阅读 TryCatchLast 文档,了解有关取消语义的更多信息。
一般来说,我不建议在 SWF 中使用许多子工作流,您始终可以分层执行。像 30 个孩子一样,每个 30 个孩子提供 900 个工作流程。