Macro switchboard_on_demand::retry
source · macro_rules! retry { ($attempts:expr, $delay_ms:expr, $expr:expr) => { ... }; }
Expand description
Retry a given expression a specified number of times with a delay between each attempt.
§Arguments
attempts
- The number of attempts to make.delay_ms
- The delay in milliseconds between each attempt.expr
- The expression to be retried.
§Returns
Returns a Result
containing the value of the expression if it succeeds within the specified number of attempts,
or an error if it fails on all attempts.
§Examples
use switchboard_solana::retry;
// Retry a blockhash fetch 3 times with a delay of 500ms in between each failure
let blockhash = retry!(3, 500, rpc.get_latest_blockhash().await)
.await
.map_err(|e| OnDemandError::SolanaBlockhashFetchError(Arc::new(e)))?;