zulip/zproject
Mateusz Mandera 52515a1560 presence: Tweak and document presence tuning values.
We're changing the ping interval from 50s to 60s, because that's what
the mobile apps have hardcoded currently, and backwards-compatibility
is more important there than the web app's previously hardcoded 50s.

For PRESENCE_PING_INTERVAL_SECS, the previous value hardcoded in both
clients was 140s, selected as "plenty of network/other latency more
than 2 x ACTIVE_PING_INTERVAL_MS". This is a pretty aggressive value;
even a single request being missed or 500ing can result in a user
appearing offline incorrectly. (There's a lag of up to one full ping
interval between when the other client checks in and when you check
in, and so we'll be at almost 2 ping intervals when you issue your
next request that might get an updated connection time from that
user).

To increase failure tolerance, we want to change the offline
threshhold from 2 x ACTIVE_PING_INTERVAL + 20s to 3 x
ACTIVE_PING_INTERVAL + 20s, aka 140s => 200s, to be more robust to
temporary failures causing us to display other users as offline.

Since the mobile apps currently have 140s and 60s hardcoded, it should
be safe to make this particular change; the mobile apps will just
remain more aggressive than the web app in marking users offline until
it uses the new API parameters.

The end result in that Zulip will be slightly less aggressive at
marking other users as offline if they go off the Internet. We will
likely be able to tune ACTIVE_PING_INTERVAL downwards once #16381 and
its follow-ups are completed, because it'll likely make these requests
much cheaper.
2023-02-21 12:10:43 -08:00
..
jinja2 ruff: Fix S701 Consider using `autoescape=True`. 2023-01-26 10:16:30 -08:00
__init__.py
backends.py backends: Use staticfilesfor social auth logos. 2023-02-14 17:17:06 -05:00
computed_settings.py settings: Allow customization of STATIC_URL. 2023-02-14 17:17:06 -05:00
config.py config: Remove Django base class from ZulipSettingsError. 2022-09-26 12:42:36 -07:00
configured_settings.py ruff: Fix M001 Unused `noqa` directive. 2022-11-03 12:10:15 -07:00
default_settings.py presence: Tweak and document presence tuning values. 2023-02-21 12:10:43 -08:00
dev_settings.py uploads: Set X-Accel-Redirect manually, without using django-sendfile2. 2023-01-09 18:23:58 -05:00
dev_urls.py settings: Allow customization of STATIC_URL. 2023-02-14 17:17:06 -05:00
email_backends.py email_backends: Fix type annotation of EmailLogBackEnd. 2022-07-29 14:58:11 -07:00
legacy_urls.py legacy_urls: Add type annotation to legacy_urls. 2022-08-12 17:08:04 -07:00
prod_settings.pyi lint: Replace pycodestyle and pyflakes with ruff. 2022-11-03 12:10:15 -07:00
prod_settings_template.py rabbitmq: Add a RABBITMQ_PORT setting. 2023-02-20 12:04:25 -08:00
sentry.py puppet: Add a sentry release class. 2023-02-10 15:53:10 -08:00
settings.py ruff: Fix M001 Unused `noqa` directive. 2022-11-03 12:10:15 -07:00
settings_types.py settings_type: Extract new module for types used in settings. 2022-09-26 12:42:36 -07:00
template_loaders.py template_loaders: Extract TwoFactorLoader to new module. 2022-09-26 12:42:36 -07:00
test_extra_settings.py settings_type: Extract new module for types used in settings. 2022-09-26 12:42:36 -07:00
test_settings.py ruff: Fix M001 Unused `noqa` directive. 2022-11-03 12:10:15 -07:00
urls.py muted users: Make file naming consistent. 2023-02-10 15:39:57 -08:00
wsgi.py python: Normalize quotes with Black. 2021-02-12 13:11:19 -08:00