Amazon Simple Workflow Service
开发人员指南 (API 版本 2012-01-25)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

处理 Amazon SWF 中的错误

工作流程执行过程中会发生很多不同类型的错误。

验证错误

当发送至 Amazon SWF 的请求因格式不正确或包含无效数据而失败时,就会发生验证错误。在此背景下,请求可以是 DescribeDomain 之类的操作或 StartTimer 之类的决策。如果该请求是一个操作,则 Amazon SWF 会在响应中返回错误代码。检查此错误代码,因为它可能会提供有关请求的哪方面导致失败的信息。例如,请求传输的一个或多个参数可能无效。有关常见错误代码的列表,请转至 Amazon Simple Workflow Service API Reference 中的操作主题。

如果失败的请求是一个决策,则将会在工作流程执行历史中列出适当的事件。例如,如果 StartTimer 决策失败,您会在历史中看到 StartTimerFailed 事件。决策程序应在其接收历史时检查上述事件以响应 PollForDecisionTaskGetWorkflowExecutionHistory。以下是在决策格式不适当或包含无效数据时可能会发生决策失败的事件之列表。

制定操作或决策中发生的错误

即使该请求的格式正确,也可能会在 Amazon SWF 尝试执行请求时发生错误。在这种情况下,历史中的以下事件中会有一个指示错误已发生。查看事件的 reason 字段以确定失败原因。

超时

决策程序活动工作程序工作流程执行都会在超时时间限制内运行。在这种类型的错误中,任务或子工作流程超时。描述超时的事件会出现在历史记录中。决策程序应通过重新排定任务或重新启动子工作流程等方法处理此事件。有关超时的更多信息,请参阅 超时类型

用户代码导致的错误

这种错误条件类型的示例为活动任务失败和子工作流程失败。与超时错误一样,Amazon SWF 会将相应事件添加到工作流程执行历史。决策程序应合理地重新排定任务或重新启动子工作流程以处理此事件。

与关闭工作流程执行相关的错误。

如果决策程序尝试关闭具有待办决策任务的工作流程,它们还可以查看以下事件。

有关上面所列的任一事件的详细信息,请参阅 Amazon SWF API 参考中的历史事件