Skip to content

Coalesce Live Activity refreshes so updates aren't postponed by frequent polling - #771

Open
bjorkert wants to merge 2 commits into
devfrom
fix/la-snapshot-debounce
Open

bjorkert wants to merge 2 commits into
devfrom
fix/la-snapshot-debounce

Conversation

@bjorkert

Copy link
Copy Markdown
Member

The Live Activity refresh was debounced by 20 s, and every new request restarted the timer. When a reading is late, BG is fetched every 5 s and device status every 10 s, so the timer never fired and the Live Activity and the saved snapshot stayed stale until polling slowed down. This also happens in a normal loop cycle while waiting for the loop to upload device status after a new BG.

Now the first request schedules the refresh and later requests join it, so the update runs within 20 s regardless of how often data is fetched. The existing check that skips unchanged snapshots is the same. Added unit tests for the new RefreshCoalescer.

The first refresh request schedules the update 20 s later, and requests
that arrive while it is pending join it without moving the deadline. When
BG or device status is polled every 5 or 10 s, the snapshot is still saved
and the Live Activity updated within 20 s.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant