Disable backoffs max_elapsed_time functionality

This config setting makes backoff stop retrying if we didn't get an
error within this timeframe.
For us, this results in backoff not actually doing anything.

The connection to kraken is very long-running. It might be active
for hours without failing. However, the default value for
`max_elapsed_time` is set to 15 minutes. As such, once the connection
fails any time after that, backoff doesn't actually retry the operation
but just gives up.

Fixes #303.
This commit is contained in:
Thomas Eizinger 2021-03-11 13:33:46 +11:00
parent 9279877c8f
commit bac0f11898
No known key found for this signature in database
GPG Key ID: 651AC83A6C6C8B96

View File

@ -15,8 +15,16 @@ pub fn connect() -> Result<RateUpdateStream> {
let rate_update = Arc::new(rate_update);
tokio::spawn(async move {
// The default backoff config is fine for us apart from one thing:
// `max_elapsed_time`. If we don't get an error within this timeframe,
// backoff won't actually retry the operation.
let backoff = backoff::ExponentialBackoff {
max_elapsed_time: None,
..backoff::ExponentialBackoff::default()
};
let result = backoff::future::retry_notify::<Infallible, _, _, _, _, _>(
backoff::ExponentialBackoff::default(),
backoff,
|| {
let rate_update = rate_update.clone();
async move {