在需要构建新视图的场景中,我们可以重播来自活动商店。结果,我们将投影出新的视图。
因此,我们的想法是部署一个新的投影,该投影可以投影所有旧事件(通过重播),并监听新传入的事件并投影它们。
我认为在读取旧事件和收听新传入事件时可能会发生比赛条件。因此,我们可以多次投影同一事件,然后破坏新视图。
那么,在要重播的事件和新传入的事件之间划清界限的好方法是什么?
Thanks!
活动商店 https://geteventstore.com/支持这种情况通过追赶订阅 https://geteventstore.com/blog/20130306/getting-started-part-3-subscriptions/
您可以将流的最开始指定为订阅者的起点,然后它将处理“现在”之前的所有事件,然后开始侦听传入的事件。
Connection.SubscribeToStreamFrom(
StreamName,
checkpoint,
resolveLinkTos,
OnEventReceived,
OnLiveProcessingStarted,
OnSubscriptionDropped);
当您开始实时处理时,您甚至会收到一个事件。 :)
对于此类事情的更一般建议:
- 使进程幂等,因此即使您两次收到相同的事件也没关系
- 在接收端进行重复数据删除 - 您需要保留已处理的事件的记录
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)