首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >hazelcast事务通知

hazelcast事务通知
EN

Stack Overflow用户
提问于 2014-02-11 23:16:28
回答 1查看 696关注 0票数 0

看最新的哈泽尔卡斯特医生,

假设有一个Hazelcast映射和集合,我们执行一个事务来更新这两个映射和集合。现在,考虑以下问题:侦听器需要基于映射和集合的一致视图执行一些操作,但只需要在事务发生时执行一次。

对于hazelcast事务是否有实现这种回调机制的好方法?对此是否有内在的支持,或者这是客户端需要做的事情?

EN

回答 1

Stack Overflow用户

发布于 2014-03-03 08:57:43

我不知道是否有事务侦听器。但是,我认为对于您的transaction示例来说,topics是您想要的机制。

设置主题侦听器

代码语言:javascript
复制
// setup on client 2
// define...
//     class Topic1Event ...
//     class Topic1Listener implements MessageListener<Topic1Event> ...
HazelcastInstance hc2;
hc2.getTopic("topic1").addMessageListener(new Topic1Listener)

然后是一个交易

代码语言:javascript
复制
// client 1
HazelcastInstance hc1;
TransactionContext tc1= hc1.newTransactionContext
tc1.beginTransaction
tc1.getMap("map1").set("key1", "value1")
tc1.getSet("set1").add("value2")
tc1.commitTransaction
// TransactionContext doesn't have getTopic
hc1.getTopic("topic1").publish(new Topic1Event)

好了!上面的伪代码--不编译!

当然,您可以在mapset上对侦听器执行此操作,但这可能会模糊您的意图。例如,稍后您的代码可能会演变成有更多的集合,并删除您将侦听器附加到的集合。那你就有了窃听器。

如果您有一个主题,现在甚至可以使用您的Topic1Event来传递一个事务序列号或其他一些元信息。

编辑的TransactionContext没有getTopic

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

https://stackoverflow.com/questions/21715267

复制
相关文章

相似问题

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