我有一个用图(或者更具体地说是dag)表示的节点网络。顶点和边只是指向缓存中大对象的in。
我使用hazelcast,有两个缓存:
当我插入一个大对象时,我有一个条目侦听器,它将在缓存中更新这个图。类似地,当我添加一个边数据时,也有一个条目侦听器将更新图形。
然而,我有一个问题,如果我创建了一个边,它创建了一个循环,它失败了(因为它是一个dag),但IMap保留了记录。
您知道如何跨主线程和条目侦听器进行事务处理吗?
发布于 2018-12-21 03:43:33
@Pilo,问题是EntryListener侦听在地图中已经填充数据后触发的事件。因此,当您将数据插入到第一个映射中&侦听更新事件时,数据已经存在于第一个映射中。
您可以选择
如果在第一个映射上的操作失败,
发布于 2018-12-29 00:26:12
虽然这是一种完全不同的方法,但你看过Hazelcast Jet吗?它是一个基于DAG的事件流处理引擎,构建在Hazelcast IMDG之上。它可能更适合您的用例,并为您处理较低级别的内容。
你会有一个Jet集群,这也是一个Hazelcast集群,但你可以用它来处理所有的东西。它扩展了Java Streams编程模型,因此您只需编写应用程序,就像编写Java流一样,并在集群上运行。不管怎么说,还是要考虑一些事情。
https://stackoverflow.com/questions/53874830
复制相似问题