instrumentisto / medea

[Closed] Medea media server
Mozilla Public License 2.0
23 stars 3 forks source link

Improve Jason reconnect API #206

Closed alexlapa closed 3 years ago

alexlapa commented 3 years ago

Synopsis

Реконнекты снаружи прокаются через ReconnectHandle. На нем есть две функции:

  1. reconnect_with_delay(delay_ms: u32), который дернет реконнект после указанной задержки.
  2. reconnect_with_backoff(starting_delay_ms: u32, multiplier: f64, max_delay: u32), который реализует exponential backoff подход.

В данный момент второй метод будет дергать реконнект до успеха или до финализации Jason'а. Вижу смысл его немного улучшить, дав максимальное ограничение по времени. Тогда пользователи смогут сразу кормить в этот метод какой-нибудь свой MAX_RECONNECT_TIMEOUT и тупо ждать пока метод отработает.

Solution

Add optional max_elapsed_time_ms arg to reconnect_with_backoff(). Switch to backoff crate.

Checklist

alexlapa commented 3 years ago

FCM:

Improve Jason reconnect API (#206)

- add optional argument to ReconnectHandle.reconnect_with_backoff() that limits max elapsed time

Additionally:
- upgrade Chrome to 91.0 version for E2E tests
- fix state synchronization in E2E tests