Files
MyIP/tests
jason5ng32andClaude Opus 5.5 287c50fe1a Feat(datasets): one updater engine for every offline dataset
MaxMind and CAIDA each had their own updater with its own lock, state file,
publish step, boot download and timer. One engine (common/dataset-updater.js)
now owns all of that, and each dataset is a row in common/datasets.js that
holds only its own logic: find the newest remote version, fetch or distill
it, validate, reload.

- Locks: proper-lockfile, a heartbeat lock shared by every process, so a
  crashed holder's lock goes stale on its own; a booting server waits for a
  live holder and loads what it published.
- State: one file per dataset, written with write-file-atomic; the old
  .maxmind-update-state.json / .caida-update-state.json are read once, so an
  upgrade doesn't re-download.
- Schedule: croner at a fixed time (DATASET_UPDATE_CRON, default 04:30 local)
  instead of 24 h from process start, plus a catch-up run at boot for a check
  a downtime skipped. DATASET_AUTO_UPDATE (default on) replaces
  MAXMIND_AUTO_UPDATE / CAIDA_AUTO_UPDATE, which still apply when it is unset.
- Reload: the engine watches every dataset's files, so a publish by another
  process or a hand-placed .mmdb is picked up; MaxMind's own watcher goes.

MaxMind's City and ASN editions now publish together under one version.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 02:21:58 +08:00
..
2026-07-16 16:19:30 +08:00
2026-09-18 10:00:47 +08:00
2026-09-24 09:37:12 +08:00
2026-07-21 22:29:05 +08:00
2026-09-29 16:00:44 +08:00
2026-08-15 01:05:00 +08:00
2026-08-16 15:29:00 +08:00
2026-06-08 11:43:35 +08:00
2026-07-13 22:56:56 +08:00
2026-07-17 15:11:28 +08:00
2026-06-07 01:10:11 +08:00
2026-08-09 09:08:26 +08:00
2026-09-26 17:02:59 +08:00
2026-09-24 09:37:12 +08:00
2026-07-21 22:29:05 +08:00
2026-09-21 23:11:43 +08:00