使用Axon框架-我能够重放整个事件存储并重新创建视图模型。但是是否可以针对特定类型或针对特定Id重放事件。
比方说,我有一个客户事件,我想用Id= 100重播客户的所有事件。对特定客户进行回放是有意义的,还是始终对整个事件存储进行回放更有意义?
提前感谢
发布于 2019-02-03 12:09:23
对于这个特定的ReadModel,做任何对你有意义的事情都是可以的。
只重新处理一个客户的一个原因是速度。如果它比完全重建快得多(例如,因为你有很多客户),而且结果是一样的,那么就这么做吧。
发布于 2019-02-04 16:49:30
正如Constantin指出的那样,这种重放特定视图的请求完全有意义。
Axon Framework中提供的重放流程此时仅用于触发特定处理组的重放,允许您设置要重放的时间点。
有一些想法可以为回放提供一个更细粒度的解决方案,但是我很难告诉你什么时候会发生。因此,仅重放单个视图模型,例如速度,将需要一些自定义代码。如果你对如何做到这一点感兴趣,请告诉我。
更新
用于此操作的API是TrackingEventProcessor#resetTokens(TrackingToken),它允许您从给定的时间点重置跟踪事件处理器。
这仍然不能让您选择重播Read Model的给定实例。这仍然需要你的部分做一些方便的工作。
https://stackoverflow.com/questions/54486917
复制相似问题