Was this page helpful?
Caution
You're viewing documentation for an unstable version of Scylla Rust Driver. Switch to the latest stable version.
Fallthrough retry policy¶
The FalthroughRetryPolicy
never retries, returns errors straight to the user. Useful for debugging.
Examples¶
To use in Session
:
use scylla::client::session::Session;
use scylla::client::session_builder::SessionBuilder;
use scylla::client::execution_profile::ExecutionProfile;
use scylla::policies::retry::FallthroughRetryPolicy;
let handle = ExecutionProfile::builder()
.retry_policy(Arc::new(FallthroughRetryPolicy::new()))
.build()
.into_handle();
let session: Session = SessionBuilder::new()
.known_node("127.0.0.1:9042")
.default_execution_profile_handle(handle)
.build()
.await?;
To use in an unprepared statement:
use scylla::statement::unprepared::Statement;
use scylla::client::execution_profile::ExecutionProfile;
use scylla::policies::retry::FallthroughRetryPolicy;
let handle = ExecutionProfile::builder()
.retry_policy(Arc::new(FallthroughRetryPolicy::new()))
.build()
.into_handle();
// Create a Statement manually and set the retry policy
let mut my_statement: Statement = Statement::new("INSERT INTO ks.tab (a) VALUES(?)");
my_statement.set_execution_profile_handle(Some(handle));
// Execute the statement using this retry policy
let to_insert: i32 = 12345;
session.query_unpaged(my_statement, (to_insert,)).await?;
To use in a prepared statement:
use scylla::statement::prepared::PreparedStatement;
use scylla::client::execution_profile::ExecutionProfile;
use scylla::policies::retry::FallthroughRetryPolicy;
let handle = ExecutionProfile::builder()
.retry_policy(Arc::new(FallthroughRetryPolicy::new()))
.build()
.into_handle();
// Create PreparedStatement manually and set the retry policy
let mut prepared: PreparedStatement = session
.prepare("INSERT INTO ks.tab (a) VALUES(?)")
.await?;
prepared.set_execution_profile_handle(Some(handle));
// Run the query using this retry policy
let to_insert: i32 = 12345;
session.execute_unpaged(&prepared, (to_insert,)).await?;