本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
信号
信号可使您将信息插入正在运行的工作流执行中。在某些应用场景中,建议您将信息增加到正在运行的工作流执行中,使其了解有些情况发生了改变或向其通知外部事件。任何过程都能发送信号到开启的工作流执行中。例如,一个工作流执行可向另一个发送信号。
要使用信号,请定义要传递给信号的信号名称和数据(如果有)。然后,编写决策程序程序以在历史纪录中识别信号事件 (WorkflowExecutionSignaled) 并适当处理该事件。当进程想要发出工作流程执行信号时,它会调用 Amazon SWF(使用SignalWorkflowExecution操作,或者在决策者的情况下,使用SignalExternalWorkflowExecution决定),指定目标工作流程执行的标识符、信号名称和信号数据。然后,Amazon SWF 接收信号,将其记录在目标工作流程执行历史记录中,并为其安排决策任务。当决策程序收到决策任务时,它还会接收到工作流执行历史内部的信号。然后,决策程序可根据信号及其数据采取适当操作。
以下是信号的一些应用情况:
-
暂停工作流执行的进展,直到收到信号(例如,等待库存发货)。
-
向工作流执行提供可能会影响决策程序做决策之逻辑的信息。这对受外部事件(例如,尝试在闭市后完成股票销售)影响的工作流很有用。
-
在您期望发生更改时(例如,在下订单后发货之前更改订单数量)更新工作流执行。
对于应取消工作流程的情况(例如,订单本身已被买家取消)RequestCancelWorkflowExecution
应该使用操作而不是向工作流发送信号。