Signals - Amazon Simple Workflow Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Signals

信号可使您将信息插入正在运行的工作流执行中。在某些应用场景中,建议您将信息增加到正在运行的工作流执行中,使其了解有些情况发生了改变或向其通知外部事件。任何过程都能发送信号到开启的工作流执行中。例如,一个工作流执行可向另一个发送信号。

要使用信号,请定义要传递给信号的信号名称和数据(如果有)。然后,编写决策程序程序以在历史纪录中识别信号事件 (WorkflowExecutionSignaled) 并适当处理该事件。当进程想要发出工作流程执行信号时,它会调用 Amazon SWF(使用SignalWorkflowExecution操作,或者在决策者的情况下,使用SignalExternalWorkflowExecution决策),该决策指定目标工作流程执行的标识符、信号名称和信号数据。然后,Amazon SWF 接收信号,将其记录到目标工作流程执行的历史记录中,并为其安排决策任务。当决策程序收到决策任务时,它还会接收到工作流执行历史内部的信号。然后,决策程序可根据信号及其数据采取适当操作。

以下是信号的一些应用情况:

  • 暂停工作流执行的进展,直到收到信号(例如,等待库存发货)。

  • 向工作流执行提供可能会影响决策程序做决策之逻辑的信息。这对受外部事件(例如,尝试在闭市后完成股票销售)影响的工作流很有用。

  • 在您期望发生更改时(例如,在下订单后发货之前更改订单数量)更新工作流执行。

对于应取消工作流的情况(例如,订单本身已被客户取消)RequestCancelWorkflowExecution操作,而不是向工作流发送信号。