Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Transactions hazelcast事务通知_Transactions_Notifications_Hazelcast - Fatal编程技术网

Transactions hazelcast事务通知

Transactions hazelcast事务通知,transactions,notifications,hazelcast,Transactions,Notifications,Hazelcast,查看最新的Hazelcast文档 假设有一个Hazelcast映射和集合,我们执行一个更新这两个映射和集合的事务。现在,考虑侦听者需要基于映射和集合的一致视图执行一些动作的问题,但只需要在事务发生时执行一次。p> 对于hazelcast事务,有没有一种很好的方法来实现这种回调机制?这是否有内在的支持,或者这是需要在客户端完成的事情?我不知道是否有事务侦听器。但是,我认为对于您的事务示例主题是您想要的机制 设置主题侦听器 // setup on client 2 // define... //

查看最新的Hazelcast文档

假设有一个Hazelcast映射和集合,我们执行一个更新这两个映射和集合的事务。现在,考虑侦听者需要基于映射和集合的一致视图执行一些动作的问题,但只需要在事务发生时执行一次。p>
对于hazelcast事务,有没有一种很好的方法来实现这种回调机制?这是否有内在的支持,或者这是需要在客户端完成的事情?

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

设置主题侦听器

// setup on client 2
// define...
//     class Topic1Event ...
//     class Topic1Listener implements MessageListener<Topic1Event> ...
HazelcastInstance hc2;
hc2.getTopic("topic1").addMessageListener(new Topic1Listener)
!!上面的伪代码——不编译

当然,你可以用
映射
集合
上的监听器来做,但这可能会模糊你的意图。例如,稍后您的代码可能会演变为拥有更多集合,并删除您附加到侦听器的集合。那你就有一只虫子了

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

已编辑
TransactionContext
没有
getTopic

// 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)