class ReactiveTransactions extends AnyRef
An asynchronous version of Transactions, allowing transactions to be created and run in an asynchronous manner.
- Alphabetic
- By Inheritance
- ReactiveTransactions
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- def run(transactionLogic: (ReactiveTransactionAttemptContext) => SMono[Unit]): SMono[TransactionResult]
A convenience overload of ReactiveTransactions.run() that provides default options.
- def run(transactionLogic: (ReactiveTransactionAttemptContext) => SMono[Unit], options: TransactionOptions): SMono[TransactionResult]
Runs the supplied transactional logic until success or failure.
Runs the supplied transactional logic until success or failure.
This is the asynchronous version of Transactions.run(), so to cover the differences:
- The transaction logic is supplied with a ReactiveTransactionAttemptContext, which contains asynchronous methods to allow it to read, mutate, insert and delete documents.
- The transaction logic should run these methods as a Reactor chain - as standard with reactive programming.
- The transaction logic should return a
SMono[Unit]
. - This method returns a
SMono[TransactionResult]
, which should be handled as a normal Reactor SMono.
- transactionLogic
the application's transaction logic
- options
the configuration to use for this transaction
- returns
there is no need to check the returned
TransactionResult
, as success is implied by the lack of a raised exception. It contains information useful only for debugging and logging.
- Exceptions thrown
[[TransactionFailedException]]
or a derived exception if the transaction fails to commit for any reason, possibly after multiple retries. The exception contains further details of the error.
Deprecated Value Members
- def run(transactionLogic: (ReactiveTransactionAttemptContext) => SMono[Unit], options: Option[TransactionOptions] = None): SMono[TransactionResult]
- Annotations
- @deprecated
- Deprecated
Users should use the overload that takes a TransactionsOption directly rather than an Option