Interface RetryPolicy.Condition
- Enclosing class:
RetryPolicy
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
Determines whether a failed transaction attempt should be retried.
Implementations should be thread-safe if the RetryPolicy is shared across threads.
- Since:
- 4.4.0
- Author:
- Mark Allen
-
Method Summary
Modifier and TypeMethodDescriptionstatic @NonNull RetryPolicy.Conditiondeadlock()Creates a condition that retries deadlocks.static @NonNull RetryPolicy.ConditionCreates a condition that retries serialization failures.static @NonNull RetryPolicy.ConditionCreates a condition that retries serialization failures and deadlocks.@NonNull BooleanshouldRetry(@NonNull DatabaseException failure) Determines whether a failed transaction attempt should be retried.static @NonNull RetryPolicy.Conditiontimeout()Creates a condition that retries timeouts and cancellations recognized by Pyranid.
-
Method Details
-
shouldRetry
Determines whether a failed transaction attempt should be retried.- Parameters:
failure- the database failure that caused the transaction attempt to fail- Returns:
trueto retry,falseto stop retrying
-
serializationFailureOrDeadlock
Creates a condition that retries serialization failures and deadlocks.- Returns:
- a serialization-failure-or-deadlock retry condition
-
serializationFailure
Creates a condition that retries serialization failures.- Returns:
- a serialization-failure retry condition
-
deadlock
Creates a condition that retries deadlocks.- Returns:
- a deadlock retry condition
-
timeout
Creates a condition that retries timeouts and cancellations recognized by Pyranid.Timeouts and cancellations are not always safe to retry: the database may have completed part or all of the work before the timeout surfaced to the caller. Use this condition only when the retried transaction body is safe to run more than once for the application workflow.
- Returns:
- a timeout retry condition
-