我有一组我认为非常适合 AWS SWF 的业务流程。
其中一些过程包括等待期,可能是一周到三个月不等。一个(简短且未完全解释)示例可能类似于“如果用户注册特定服务,如果他们在 4 个月后仍然订阅,则向他们发送某种形式的奖励”。
我正在通过让注册过程启动一个工作流程来对此进行建模,然后为 4 个月的等待期设置一个计时器。
问题在于如果订阅者在 4 个月内取消订阅,我们不想发送奖励。
我可以看到两种方法:取消时发出“取消”信号(这将停止“睡眠”工作流程),或者在“发送奖励”步骤之前做出“检查订阅”决定(即,在工作流程之后“醒来”)。(显然我也可以两者都做,对于“腰带和大括号”的方法)
这里有推荐的最佳实践吗?有可能存在数以万计的这些不同的业务流程,它们在任何时候都可能处于活动或休眠状态。