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. Setting this will mean that the connection manager actively listens to updates from the server, and so it will cause the manager to reconnect after a disconnection, even if the manager was unused at the time of the disconnect.
§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 more