Interface AsyncTransactionManager.AsyncTransactionStep<I,O> (6.83.0)

public static interface AsyncTransactionManager.AsyncTransactionStep<I,O> extends ApiFuture<O>

AsyncTransactionStep is returned by TransactionContextFuture#then(AsyncTransactionFunction, Executor) and AsyncTransactionStep#then(AsyncTransactionFunction, Executor) 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.

Parameters
Name Description
next AsyncTransactionFunction<O,RES>
executor Executor
Returns
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.

Returns
Type Description
AsyncTransactionManager.CommitTimestampFuture