Skip to content

Commit 1323684

Browse files
committed
fix backoff reset logic
1 parent 0931845 commit 1323684

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

lazer/sdk/rust/client/src/resilient_ws_connection.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -97,14 +97,16 @@ impl PythLazerResilientWSConnectionTask {
9797
response_sender: mpsc::Sender<AnyResponse>,
9898
request_receiver: &mut mpsc::Receiver<Request>,
9999
) -> Result<()> {
100-
let mut last_failure_time = Instant::now();
101-
102100
loop {
101+
let start_time = Instant::now();
103102
if let Err(e) = self.start(response_sender.clone(), request_receiver).await {
104-
if last_failure_time.elapsed() > BACKOFF_RESET_DURATION {
103+
// If a connection was working for BACKOFF_RESET_DURATION
104+
// and timeout + 1sec, it was considered successful therefore reset the backoff
105+
if start_time.elapsed() > BACKOFF_RESET_DURATION
106+
&& start_time.elapsed() > self.timeout + Duration::from_secs(1)
107+
{
105108
self.backoff.reset();
106109
}
107-
last_failure_time = Instant::now();
108110

109111
let delay = self.backoff.next_backoff();
110112
match delay {

0 commit comments

Comments
 (0)