pub struct ConnectionManagerConfig { /* private fields */ }Expand description
The configuration for reconnect mechanism and request timing for the ConnectionManager
Implementations§
Source§impl ConnectionManagerConfig
 
impl ConnectionManagerConfig
Sourcepub fn set_factor(self, factor: u64) -> ConnectionManagerConfig
 
pub fn set_factor(self, factor: u64) -> ConnectionManagerConfig
A multiplicative factor that will be applied to the retry delay.
For example, using a factor of 1000 will make each delay in units of seconds.
Sourcepub fn set_max_delay(self, time: u64) -> ConnectionManagerConfig
 
pub fn set_max_delay(self, time: u64) -> ConnectionManagerConfig
Apply a maximum delay between connection attempts. The delay between attempts won’t be longer than max_delay milliseconds.
Sourcepub fn set_exponent_base(self, base: u64) -> ConnectionManagerConfig
 
pub fn set_exponent_base(self, base: u64) -> ConnectionManagerConfig
The resulting duration is calculated by taking the base to the n-th power,
where n denotes the number of past attempts.
Sourcepub fn set_number_of_retries(self, amount: usize) -> ConnectionManagerConfig
 
pub fn set_number_of_retries(self, amount: usize) -> ConnectionManagerConfig
number_of_retries times, with an exponentially increasing delay
Sourcepub fn set_response_timeout(self, duration: Duration) -> ConnectionManagerConfig
 
pub fn set_response_timeout(self, duration: Duration) -> ConnectionManagerConfig
The new connection will time out operations after response_timeout has passed.
Sourcepub fn set_connection_timeout(
    self,
    duration: Duration,
) -> ConnectionManagerConfig
 
pub fn set_connection_timeout( self, duration: Duration, ) -> ConnectionManagerConfig
Each connection attempt to the server will time out after connection_timeout.
Sourcepub fn set_push_sender(self, sender: impl AsyncPushSender) -> Self
 
pub fn set_push_sender(self, sender: impl AsyncPushSender) -> Self
Sets sender sender for push values.
The sender can be a channel, or an arbitrary function that handles crate::PushInfo values. This will fail client creation if the connection isn’t configured for RESP3 communications via the crate::RedisConnectionInfo::protocol field.
§Examples
let (tx, mut rx) = tokio::sync::mpsc::unbounded_channel();
let config = ConnectionManagerConfig::new().set_push_sender(tx);let messages = Arc::new(Mutex::new(Vec::new()));
let config = ConnectionManagerConfig::new().set_push_sender(move |msg|{
    let Ok(mut messages) = messages.lock() else {
        return Err(redis::aio::SendError);
    };
    messages.push(msg);
    Ok(())
});Sourcepub fn set_automatic_resubscription(self) -> Self
 
pub fn set_automatic_resubscription(self) -> Self
Configures the connection manager to automatically resubscribe to all pubsub channels after reconnecting.
Sourcepub fn set_tcp_settings(self, tcp_settings: TcpSettings) -> Self
 
pub fn set_tcp_settings(self, tcp_settings: TcpSettings) -> Self
Set the behavior of the underlying TCP connection.
Trait Implementations§
Source§impl Clone for ConnectionManagerConfig
 
impl Clone for ConnectionManagerConfig
Source§fn clone(&self) -> ConnectionManagerConfig
 
fn clone(&self) -> ConnectionManagerConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
 
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ConnectionManagerConfig
 
impl Debug for ConnectionManagerConfig
Auto Trait Implementations§
impl Freeze for ConnectionManagerConfig
impl !RefUnwindSafe for ConnectionManagerConfig
impl Send for ConnectionManagerConfig
impl Sync for ConnectionManagerConfig
impl Unpin for ConnectionManagerConfig
impl !UnwindSafe for ConnectionManagerConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
    T: Clone,
 
impl<T> CloneToUninit for Twhere
    T: Clone,
Source§impl<T> IntoEither for T
 
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
 
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
 
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more