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