Apache Curator的CuratorFramework类实例允许运行变异操作inTransaction()
。我目前正在使用这些调用,但无法弄清楚如何提交它们。
查看CuratorTransaction JavaDoc,它明确指出:
重要:
在调用CuratorTransactionFinal.commit()
之前,不会提交操作。
但是,CuratorTransactionFinal
是一个没有实现类的接口(我可以找到)。
我是否希望实施它并定义commit()
的功能?
或者我错过了一些更大的概念?
答案 0 :(得分:3)
在源代码中找到它:
假设您的CuratorFramework实例名为“client”。
如果你执行像...这样的操作。
client.create().forPath("/foo");
......这不是交易性的。如果你执行......
client.inTransaction().create.forPath("/foo");
......确实如此,但在提交事务之前,操作实际上不会完成。我已经知道了这么多。要提交交易,请执行以下操作:
client.inTransaction().create().forPath("/foo")
.and().create().forPath("/bar")
.and().commit();