使用spring状态机跟踪无数记录的状态是否可行?

时间:2018-12-06 13:35:23

标签: spring-statemachine

我对spring-statemachine项目是完全陌生的,并试图了解该项目是否可以用于管理某个类的实例的生命周期,让它成为普通类还是某个JPA实体。我在这个问题上看到了一些问题,但没有答案。

IIUC,该项目中的状态机是有状态的;意思是,持有状态的是状态机,而不是外部化的上下文,后者允许与许多实体共享状态机规则。因此,为了让状态机驱动状态,我们必须为每个实例创建一个状态机,以管理其状态。是这样吗或者有没有办法声明状态机,然后问:“当前状态是,甚至是获得,什么是目标状态(请更新上下文)”

但是说上面提到的是不可能的,如果我们考虑基于超时的过渡,那可能是不可能的。可以说,一些事件正在流入系统,并且我们跟踪数千万条记录的状态。如果没有实例,我们将通过状态机工厂为每个实例创建一个状态机,并以某种方式将其配对(例如,这是一些哈希图,但是如果知道的话,您可以建议更好的解决方案),一旦完成给定记录,我们将删除状态机。这里的问题是:按说明使用该项目是一个好主意吗?一个状态机的成本是多少,这意味着如果我为一个状态机创建数百万个实例,会不会有问题?

...或者您可以推荐一种更好的方法来使用该项目来跟踪众多实例的状态,并能够回答诸如“哪些实体处于X状态?”之类的问题。

0 个答案:

没有答案