我在 Cassandra 有一个 Column 家族,我将在其中存储这样的东西-
BundleName | Version
----------------------------
FrameworkBundle 1.0.0
BundleA 1.0.0
BundleB 1.0.0
BundleC 1.0.0
BundleD 1.0.0
我正在使用 Astyanax 客户端从 Cassandra 数据库中检索数据。我将有一些方法可以从 Cassandra 中检索数据-
public Map<String, String> getFromDatabase() {
// 1) For the first time, return me everything in the map
// 2) Second time, it should return me only the the change if there is any bundle version change
}
现在这个方法应该把所有东西都作为地图返回给我,就像这样 -
Key as FrameworkBundle and Value as 1.0.0
Key as BundleA and Value as 1.0.0
Key as BundleB and Value as 1.0.0
....
And for other Bundles like above
现在我需要的是——
- 当我第一次运行我的应用程序时,它应该像上面一样返回地图中的所有内容。
- 而且我有一个后台线程,它将每 15 分钟检查一次 Cassandra 数据库,以查看是否有新版本的捆绑包。如果任何捆绑包有任何新版本,那么只需将捆绑包名称及其新版本返回给我,如果任何版本都没有更改,则不要第二次给我返回任何东西。然后,同样的过程将每 15 分钟发生一次。
仅意味着第一次,否则我想返回所有内容,除非捆绑版本有任何更改,否则我不想返回任何内容。
我不确定 Cassandra 是否可以直接提供这方面的信息,而无需编写某种逻辑来获取我需要的信息。
在 Cassandra 中做这件事的最好和最有效的方法是什么?我不想每 15 分钟从 Cassandra 数据库中检索所有数据,然后执行某种逻辑来找出更改了哪个捆绑版本。