Was this page helpful?
Caution
You're viewing documentation for an unstable version of Scylla Rust Driver. Switch to the latest stable version.
This is the retry policy used by default. It retries when there is a high chance that it might help.
This policy is based on the one in DataStax Java Driver.
The behaviour is the same.
To use in Session
:
use scylla::{Session, SessionBuilder};
use scylla::transport::ExecutionProfile;
use scylla::transport::retry_policy::DefaultRetryPolicy;
let handle = ExecutionProfile::builder()
.retry_policy(Box::new(DefaultRetryPolicy::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 a simple query:
use scylla::query::Query;
use scylla::transport::ExecutionProfile;
use scylla::transport::retry_policy::DefaultRetryPolicy;
// Create a Query manually and set the retry policy
let mut my_query: Query = Query::new("INSERT INTO ks.tab (a) VALUES(?)");
my_query.set_retry_policy(Some(Arc::new(DefaultRetryPolicy::new())));
// You can also set retry policy in an execution profile
let handle = ExecutionProfile::builder()
.retry_policy(Box::new(DefaultRetryPolicy::new()))
.build()
.into_handle();
my_query.set_execution_profile_handle(Some(handle));
// Run the query using this retry policy
let to_insert: i32 = 12345;
session.query_unpaged(my_query, (to_insert,)).await?;
To use in a prepared query:
use scylla::prepared_statement::PreparedStatement;
use scylla::transport::ExecutionProfile;
use scylla::transport::retry_policy::DefaultRetryPolicy;
// Create PreparedStatement manually and set the retry policy
let mut prepared: PreparedStatement = session
.prepare("INSERT INTO ks.tab (a) VALUES(?)")
.await?;
prepared.set_retry_policy(Some(Arc::new(DefaultRetryPolicy::new())));
// You can also set retry policy in an execution profile
let handle = ExecutionProfile::builder()
.retry_policy(Box::new(DefaultRetryPolicy::new()))
.build()
.into_handle();
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?;
Was this page helpful?
On this page