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

Amazon SWF 任务列表

任务列表提供与工作流程相关的各种任务的组织方法。可以认为任务列表与动态队列相似。在 Amazon SWF 中排定任务时,您可以指定用于放置该任务的队列(任务列表)。同样,在轮询 Amazon SWF 以获取任务时,您需要指定用于获取该任务的队列(任务列表)。

任务列表提供了灵活的机制,以在您的使用案例需要时将任务路由至工作程序。任务列表是动态的,在列表中,您不需要注册任务列表或通过一个操作明确创建列表:如果列表不存在,只需要排定任务就可创建任务列表。

活动任务和决策任务的列表是分开的。始终只在一个任务列表上排定任务;不能跨过列表共享任务。此外,与活动和工作流程类似,任务列表的范围限于特定 AWS 区域和 Amazon SWF 域。

决策任务列表

每个工作流程执行都与一个特定的决策任务列表相关。注册工作流程类型时(RegisterWorkflowType 操作),您可以为该工作流程类型的执行指定一个默认任务列表。当工作流程启动程序启动工作流程执行时(StartWorkflowExecution 操作),它可以选择为该工作流程执行指定不同的任务列表。

当决策程序轮询新决策任务(PollForDecisionTask 操作)时,决策程序可以指定决策任务列表以从中获取任务。一个决策程序可以通过多次调用 PollForDecisionTask、在每一个调用中使用不同的任务列表,以服务多个工作流程执行,在调用中,每个任务列表都指定了一个特定的工作流程执行。或者,决策程序可以轮询为多个工作流程执行提供决策任务的一个决策任务列表。您还可以使多个决策程序一起轮询一个工作流程执行的任务列表,从而使它们全部服务该工作流程执行。

活动任务列表

一个活动任务列表中可包含不同活动类型的任务。任务在任务列表中是按顺序排定的。Amazon SWF 会按最合理的顺序从列表返回任务。某些情况下,任务可能不会按序出现在列表中。

注册活动类型时(RegisterActivityType 操作),您可以为该活动类型指定一个默认任务列表。默认情况下,这种类型的活动任务将在特定任务列表上排定;但是,当决策程序排定活动任务时(ScheduleActivityTask 决策),它可以选择指定不同的任务列表以在该列表上排定任务。如果决策程序没有指定任务列表,则会使用默认任务列表。因此,您可以根据任务属性将活动任务置放在特定任务列表中。例如,您可以将给定信用卡类型的活动任务的所有实例置放到特定任务列表中。

任务路由

当活动工作程序轮询新任务时(PollForActivityTask 操作),它可以指定活动任务列表以从中获取任务。如果指定了列表,活动工作程序将只能从该列表中接受任务。用此方法,您可以确保特定任务只会分配给特定的活动工作程序。例如,您可以创建任务列表以保存需要使用高性能计算机的任务。只有运行适当硬件的活动工作程序才能轮询该任务列表。另一个示例是,为某个特定地理区域创建一个任务列表。然后,您可以确保只有在该地区部署的工作程序才能接收这些任务。或者,您可以为高优先级订单创建一个任务列表,并始终优先检查该列表。

用此方法将特定任务分配给特定活动工作程序的操作被称为任务路由。任务路由是可选操作;如果您没有在排定活动任务时指定任务列表,则任务会自动置放在默认任务列表中。