chore: update profiles cadence from monthly to weekly, randomized day
Matches the instagram-archiver-posts healthchecks.io check's Simple Schedule (period + grace, day-agnostic). The disabled systemd timer now spreads across the whole week (OnCalendar=weekly + 6d randomized delay) rather than pinning to a fixed day, same "don't look like a machine" reasoning as the stories timer's 45m jitter -- just applied to the day instead of the minute. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011qAds5qr7nZRq5R4yAuxUk
This commit is contained in:
+1
-1
@@ -332,7 +332,7 @@ the old names with a pointer rather than a bare error.
|
||||
| mode | cadence | cost | why |
|
||||
|---|---|---|---|
|
||||
| `stories` | daily | ~6 requests | stories expire in 24h and **cannot be backfilled**; this is the only run that loses content if skipped |
|
||||
| `profiles` | monthly | ~40-60 requests | every surface, `--abort 50` — stops enumerating a profile once it reaches content already held. Catches everything **new** |
|
||||
| `profiles` | weekly, randomized day | ~40-60 requests | every surface, `--abort 50` — stops enumerating a profile once it reaches content already held. Catches everything **new** |
|
||||
| `full-sweep` | rarely, by hand | **~420 requests** | no abort; walks every profile to the end. The only run that notices posts **edited** after we archived them (test case 15) |
|
||||
|
||||
The skip-archive means an infrequent `profiles` run costs barely more than a frequent
|
||||
|
||||
+1
-1
@@ -358,7 +358,7 @@ means an infrequent full sync costs barely more than a frequent one, because it
|
||||
only fetches what is new.
|
||||
|
||||
```
|
||||
# monthly, everything
|
||||
# weekly, everything
|
||||
gdl-sync.py --index <viewer-url> --staging ~/gdl/staging \
|
||||
--publish <user>@<nas>:<archives> --archive-db ~/gdl/artms.db \
|
||||
--urls-file artms_account_links.txt --execute
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
# Unattended wrapper around gdl-sync.py. One argument: the run mode.
|
||||
#
|
||||
# stories daily ~6 requests; the only surface that cannot be backfilled
|
||||
# profiles monthly every surface, --abort 50: stops enumerating a profile
|
||||
# profiles weekly every surface, --abort 50: stops enumerating a profile
|
||||
# once it reaches content already held, so it costs
|
||||
# ~40-60 requests and catches everything NEW
|
||||
# full-sweep rarely every surface, no abort: walks each profile to the end
|
||||
|
||||
@@ -1,9 +1,17 @@
|
||||
[Unit]
|
||||
Description=Monthly Instagram profile sync (all surfaces, --abort 50)
|
||||
Description=Weekly Instagram profile sync (all surfaces, --abort 50)
|
||||
|
||||
[Timer]
|
||||
OnCalendar=*-*-03 04:00:00
|
||||
RandomizedDelaySec=45m
|
||||
# Weekly, but deliberately not pinned to a day: OnCalendar anchors to Monday
|
||||
# 00:00:00 and RandomizedDelaySec spreads the actual fire up to 6 days later,
|
||||
# so which day it lands on varies week to week -- same "don't look like a
|
||||
# machine" reasoning as the stories timer's 45m jitter, just applied to the
|
||||
# day instead of the minute. See TOOLING.md's healthchecks.io section: the
|
||||
# matching instagram-archiver-posts check uses Simple Schedule (period +
|
||||
# grace) rather than Cron Schedule for exactly this reason -- a fixed cron
|
||||
# day/time would fight this jitter instead of tolerating it.
|
||||
OnCalendar=weekly
|
||||
RandomizedDelaySec=6d
|
||||
Persistent=true
|
||||
|
||||
[Install]
|
||||
|
||||
Reference in New Issue
Block a user