Куратор: совершение сделки

Экземпляры класса CuratorFramework Apache Curator позволяют выполнять операции мутации inTransaction(). В настоящее время я использую эти вызовы, но не могу понять, как их зафиксировать.

Глядя на CuratorTransaction JavaDoc, в нем четко сказано:

Важно!
операции не отправляются до CuratorTransactionFinal.commit() вызывается.

Однако CuratorTransactionFinal - это интерфейс без классов реализации (которые я могу найти).

Должен ли я реализовать его и определить функциональность commit()?
Или я упускаю какую-то более важную концепцию?


person Cody S    schedule 27.09.2012    source источник
comment
Примечание. Эти API-интерфейсы транзакций устарели в пользу никогда. Примеры нового API приведены здесь: github.com/apache/curator/blob/master/curator-examples/src/main/   -  person Randgalt    schedule 09.04.2018


Ответы (1)


Нашел в исходниках:

Предположим, что ваш экземпляр CuratorFramework называется «клиент».

если вы выполняете операцию типа...

client.create().forPath("/foo");

... это не транзакция. Если вы выполняете...

client.inTransaction().create.forPath("/foo");

... это так, но операция фактически не будет завершена, пока вы не зафиксируете транзакцию. Это я уже знал. Чтобы зафиксировать транзакцию, вы делаете:

client.inTransaction().create().forPath("/foo")
    .and().create().forPath("/bar")
    .and().commit();
person Cody S    schedule 27.09.2012