例如,系统通过 check identification -> validate order context -> make order. 。但是系统管理员可以在运行时更改流量,管理员可以跳过“validate order context”.

我的问题是该系统是否正在处理并发订单请求, 什么时候 系统应该应用流量变化?

  • a):应用更改,直到下一个新订单请求为止。

  • b):立即应用更改,无论是否正在处理任何请求。听起来太僵硬了。

  • c):将更改应用于一定时间,例如,任何更改都将在00:00:00应用。我认为这不是一个好策略。

这种情况的最佳实践是什么?如果我使用JBMP框架来控制工作流,在这种情况下可以使用什么策略?谢谢!

有帮助吗?

解决方案

您的所有三个选择都是有效的。正确的选择将取决于您要解决的问题。这里有些例子:

  1. 从下一个新订单开始应用更改。如果您想在新的工作流程中阶段,这是一个不错的选择。您可以将其描述为“通过当前的工作流程完成当前的工作,但所有新工作都将使用新的工作流程”。
  2. 立即应用更改。如果更重要的是,请使用Extrect工作流程(我的意思是新的工作流程),这是一个不错的选择。一个例子可能是“我们从工作流程中删除了不必要的步骤”。
  3. 从确切时间开始应用更改。在可以这样描述的情况下,这是一个不错的选择:“今天我们正在使用旧的工作流程,但是明天我们开始使用新的工作流”。

其他提示

从并发的角度来看,使用下一个工作流(IE订单)申请的第一个选项是最安全的选择。 这就是我要做的 因为您不会干扰状态对象,因此对观察者来说很清楚。

第二个选项需要锁定现有的工作流程,以确保在 validate order context 状态。而且,如果有的话,编写算法以正确地将其移出该状态。

最后,您的最后一个选择实际上只是安排前两个。因此,它可以被合并到任何一个,应由业务规则(即要求)驱动。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top