public static interface AsyncTransactionManager.AsyncTransactionStep<I,O> extends ApiFuture<O>
AsyncTransactionStep is returned by TransactionContextFuture#then(AsyncTransactionFunction) and AsyncTransactionStep#then(AsyncTransactionFunction) and allows transaction steps that should be executed serially to be chained together. Each step can contain one or more statements that may execute in parallel.
Example usage:
final String column = "FirstName";
final long singerId = 1L;
AsyncTransactionManager manager = client.transactionManagerAsync();
TransactionContextFuture txnFuture = manager.beginAsync();
txnFuture
.then((transaction, ignored) ->
transaction.readRowAsync("Singers", Key.of(singerId), Collections.singleton(column)),
executor)
.then((transaction, row) ->
transaction.bufferAsync(
Mutation.newUpdateBuilder("Singers")
.set(column).to(row.getString(column).toUpperCase())
.build()),
executor)
.commitAsync();
Implements
com.google.api.core.ApiFuture<O>Type Parameters
Name | Description |
I | |
O |
Methods
<RES>then(AsyncTransactionManager.AsyncTransactionFunction<O,RES> next, Executor executor)
public abstract AsyncTransactionManager.AsyncTransactionStep<O,RES> <RES>then(AsyncTransactionManager.AsyncTransactionFunction<O,RES> next, Executor executor)
Adds a step to the transaction chain that should be executed using the specified executor. This step is guaranteed to be executed only after the previous step executed successfully. MoreExecutors#directExecutor() can be be used for lightweight functions, but should be avoided for heavy or blocking operations. See also ListenableFuture#addListener(Runnable, Executor) for further information.
Name | Description |
next | AsyncTransactionFunction<O,RES> |
executor | Executor |
Type | Description |
AsyncTransactionStep<O,RES> |
commitAsync()
public abstract AsyncTransactionManager.CommitTimestampFuture commitAsync()
Commits the transaction and returns a CommitTimestampFuture that will return the commit timestamp of the transaction, or throw the first uncaught exception in the transaction chain as an ExecutionException.
Type | Description |
AsyncTransactionManager.CommitTimestampFuture |