Was this page helpful?
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