首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Akka持久性卡桑德拉:时间戳!=偏移量。或者如何只处理一次事件?

Akka持久性卡桑德拉:时间戳!=偏移量。或者如何只处理一次事件?
EN

Stack Overflow用户
提问于 2016-06-14 20:43:52
回答 1查看 565关注 0票数 1

我目前正在构建一个事件源应用程序与Akka持久性和卡桑德拉杂志插件。我有一些视图,需要捕获多个持久性ids的事件,因此我使用eventsByTag查询来更新(例如)我的mongodb视图。

如果我重新启动我的应用程序,查询就会被重放,所以我需要以某种方式存储视图的状态,这样它就不会重播已经处理的事件。

起初,我计划使用上次处理的事件的偏移量,因为Cassandra插件在内部使用TimeUUID,它应该是唯一的。这里的问题是,Akka只支持长值作为偏移量,因此TimeUUID被转换回一个正常的时间戳。

因此,例如:

2d2504b1-31f8-11e6-af83-9f34c8060f40及2d2504b2-31f8-11e6-af83-9f34c8060f40

如果我在相同的ms内有多个事件,那么这两个结果都会导致相同的偏移量,这使我在确定最后处理的事件方面毫无用处。

有没有人知道如何以更好的方式来处理这个问题?

编辑

CassandraReadJournal提供了getEventsByTag流的重载版本,它返回UUIDEventEnvelopes。这包含偏移量为UUID且不长。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-18 11:03:14

CassandraReadJournal提供了getEventsByTag流的重载版本,它返回UUIDEventEnvelopes。这包含作为UUID而不是Long的偏移量,因此是唯一的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37821746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档