用例:
我有一个用户要订阅的实体(订单项)。
假设该实体每个月可用一次,直到用户将其从列表中删除或该实体不再有效(例如订阅已过期)为止。
因此,实体可以处于的有效状态为可用,已停止,已终止。
当实体处于可用状态时,我想检查(是否可以通过周期性地)调用外部API来将其转换为订单,如果可以,则调用另一个API来创建订单。这些API本质上被保证是幂等的。
实体可以在订阅期之间停止,并在一段时间后可用。
我的方法:
我在Spring MVC中包装了API,从那里维护了Parent工作流程,该工作流程包含单个实体的所有Child工作流程的引用。
该层公开以下API POST(EntityId,状态) 会调用父工作流程,该工作流程会在其字典中进行查找,然后通过引用子工作流程来传递必要的操作。
可以向每个子工作流程发送信号通知它们进入上述状态,并且它们还向其当前状态公开查询。
问题:
我对编写工作流非常陌生,请提出我是否有任何错误。
答案 0 :(得分:0)
如果每个用户的实体数受限制,则可以将所有实体保留在一个工作流程中。在这种情况下生孩子可能会增加不必要的复杂性。
我不明白您的意思是“工作流中不允许更新”。工作流可以随时更改其状态。要更改时间段,我会向工作流程发送一个带有时间段的信号,并根据该信号信息来更新时间段。