Package com.google.cloud.spanner
Interface AsyncTransactionManager.AsyncTransactionStep<I,O>
-
- All Superinterfaces:
com.google.api.core.ApiFuture<O>
,Future<O>
- Enclosing interface:
- AsyncTransactionManager
public static interface AsyncTransactionManager.AsyncTransactionStep<I,O> extends com.google.api.core.ApiFuture<O>
AsyncTransactionManager.AsyncTransactionStep
is returned byTransactionContextFuture#then(AsyncTransactionFunction)
andAsyncTransactionStep#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();
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description AsyncTransactionManager.CommitTimestampFuture
commitAsync()
Commits the transaction and returns aAsyncTransactionManager.CommitTimestampFuture
that will return the commit timestamp of the transaction, or throw the first uncaught exception in the transaction chain as anExecutionException
.<RES> AsyncTransactionManager.AsyncTransactionStep<O,RES>
then(AsyncTransactionManager.AsyncTransactionFunction<O,RES> next, Executor executor)
Adds a step to the transaction chain that should be executed using the specified executor.
-
-
-
Method Detail
-
then
<RES> AsyncTransactionManager.AsyncTransactionStep<O,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 alsoListenableFuture.addListener(Runnable, Executor)
for further information.
-
commitAsync
AsyncTransactionManager.CommitTimestampFuture commitAsync()
Commits the transaction and returns aAsyncTransactionManager.CommitTimestampFuture
that will return the commit timestamp of the transaction, or throw the first uncaught exception in the transaction chain as anExecutionException
.
-
-