首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在hazelcast中拥有跨主线程和入口监听器的事务?

如何在hazelcast中拥有跨主线程和入口监听器的事务?
EN

Stack Overflow用户
提问于 2018-12-21 03:23:12
回答 2查看 237关注 0票数 0

我有一个用图(或者更具体地说是dag)表示的节点网络。顶点和边只是指向缓存中大对象的in。

我使用hazelcast,有两个缓存:

  1. ReferenceObject for the graph
  2. IMap for the large objects
  3. IMap for the graph

当我插入一个大对象时,我有一个条目侦听器,它将在缓存中更新这个图。类似地,当我添加一个边数据时,也有一个条目侦听器将更新图形。

然而,我有一个问题,如果我创建了一个边,它创建了一个循环,它失败了(因为它是一个dag),但IMap保留了记录。

您知道如何跨主线程和条目侦听器进行事务处理吗?

EN

回答 2

Stack Overflow用户

发布于 2018-12-21 03:43:33

@Pilo,问题是EntryListener侦听在地图中已经填充数据后触发的事件。因此,当您将数据插入到第一个映射中&侦听更新事件时,数据已经存在于第一个映射中。

您可以选择

如果在第一个映射上的操作失败,

  1. 将手动从第一个映射中删除记录。
  2. 使用transactions,确保更新所有映射或不更新任何映射,而不是使用侦听器。
票数 0
EN

Stack Overflow用户

发布于 2018-12-29 00:26:12

虽然这是一种完全不同的方法,但你看过Hazelcast Jet吗?它是一个基于DAG的事件流处理引擎,构建在Hazelcast IMDG之上。它可能更适合您的用例,并为您处理较低级别的内容。

https://jet.hazelcast.org

你会有一个Jet集群,这也是一个Hazelcast集群,但你可以用它来处理所有的东西。它扩展了Java Streams编程模型,因此您只需编写应用程序,就像编写Java流一样,并在集群上运行。不管怎么说,还是要考虑一些事情。

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

https://stackoverflow.com/questions/53874830

复制
相关文章

相似问题

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