我认为一组业务流程非常适合AWS SWF。
其中一些流程包括等待期,可能是一周到3个月。 (简短且未完全解释)示例可能与"如果用户注册特定服务,如果他们在4个月后仍在订阅,则向他们发送某种形式的奖励"。
我正在通过让注册过程从工作流程开始,然后为4个月的等待期设置计时器来查看对此进行建模。
问题在于,如果订阅者在4个月内取消订阅,我们就不想发送奖励。
我可以看到两种方法:做一个"取消"取消时发出信号(这将停止"睡眠"工作流程),或者进行"检查订阅"在"发送奖励之前的决定"步骤(即,在工作流程之后"醒来")。 (显然我也可以做两件事,对于"腰带和括号"方法)
这里有推荐的最佳做法吗?这些各种业务流程有可能在任何时候都处于活动状态或睡眠状态。
答案 0 :(得分:1)
我会选择这两种方法。在致电"发送奖励"之前,通过信号或RequestCancelWorkflowExecution取消工作流并检查订阅有效性(使用单独的活动)活动。实施后一种方法更简单,但最终需要支付技术上取消的优秀工作流程。 SWF当然可以毫无问题地处理数以万计的开放工作流程。