mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-12 22:26:13 +00:00
fix(google-health): keep the hourly sync inside its job's expiry
An account whose backfill slice held it made the hourly job wait up to eight minutes, and the sync after the wait ran as long as it needed: past the fifteen-minute expiry pg-boss failed the job and retried it beside the run still going. The pass now spends the job's budget: the lock wait is capped at what is left, the sync's walks stop when the budget is spent and leave the rest of the window to the next hour (the cycle is not stamped), and an account reached after that is skipped. A stop on the budget is not counted as a failure to retry.
This commit is contained in:
1 parent
66be8c7c2c
commit
1e07ecaaaa
5 files changed
+263
-4
No files matched your search
@@ -157,7 +157,10 @@ still a failure.
|
||||
|
||||
The hourly sync waits for the slice that is running (up to eight minutes)
|
||||
instead of skipping the account, so recent data keeps arriving while an old
|
||||
history is still coming in.
|
||||
history is still coming in. The hourly job stays inside its own fifteen-minute
|
||||
limit: the wait is cut short when the job's time runs low, the sync after it
|
||||
gets only what is left and leaves the rest of its window to the next hour, and
|
||||
an account the job reaches after its time is up waits for the next hour.
|
||||
|
||||
Google limits how many requests one account may make per minute. When a sync
|
||||
reaches that limit Google answers `429`, and HealthLog waits and repeats the
|
||||
|
||||
Reference in new issue
Block a user