docs: 更新 README 與 INFRA.md 記錄 RADAR_TARGETS 多點掃描
- README env 表格加入 RADAR_TARGETS、RADAR_ZOOM 備註(zoom 11 單點 vs zoom 15 多點的差異) - INFRA.md 加 3.13.5 多點 union 掃描節,記錄 root cause(單點 zoom 11 密度過低)、解法、生產設定、二階段優化方向 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -53,7 +53,8 @@ Secrets 放 `.env`(gitignore)。本機與生產共用同一份格式、只
|
|||||||
| `SCRIPT_PATH` | fetcher | `twpk_radar.mjs` | JS worker 檔名 |
|
| `SCRIPT_PATH` | fetcher | `twpk_radar.mjs` | JS worker 檔名 |
|
||||||
| `STATE_PATH` | fetcher | `state.json` | twpkinfo.com 登入快照,**最常壞的地方** |
|
| `STATE_PATH` | fetcher | `state.json` | twpkinfo.com 登入快照,**最常壞的地方** |
|
||||||
| `UA_FROM_STATE` | fetcher | `true` | 是否從 state 帶 UA / langs |
|
| `UA_FROM_STATE` | fetcher | `true` | 是否從 state 帶 UA / langs |
|
||||||
| `RADAR_LAT` / `RADAR_LNG` / `RADAR_ZOOM` | fetcher | `25.0478` / `121.5170` / `11` | 掃描中心 |
|
| `RADAR_LAT` / `RADAR_LNG` / `RADAR_ZOOM` | fetcher | `25.0478` / `121.5170` / `11` | 單點掃描中心(fallback,當 `RADAR_TARGETS` 未設才用) |
|
||||||
|
| `RADAR_TARGETS` | fetcher | 空 | 多點掃描,格式 `name:lat,lng;name2:lat2,lng2;...`;搭配 `RADAR_ZOOM=15` 街區級密度 |
|
||||||
| `MIN_REMAINING` | fetcher | `300` | 寫入前先做一輪粗篩,低於此值不進 Redis |
|
| `MIN_REMAINING` | fetcher | `300` | 寫入前先做一輪粗篩,低於此值不進 Redis |
|
||||||
| `MIN_IV` / `PERFECT_ONLY` / `SPECIES` | fetcher | 空 / `false` / 空 | fetcher 端篩選(通常留空,由 API 端即時篩) |
|
| `MIN_IV` / `PERFECT_ONLY` / `SPECIES` | fetcher | 空 / `false` / 空 | fetcher 端篩選(通常留空,由 API 端即時篩) |
|
||||||
| `REDIS_HOST` / `REDIS_PORT` / `REDIS_DB` / `REDIS_PASSWORD` | 全部 | 本機 `127.0.0.1` / 生產 `192.168.42.211` | 預設本機無密碼 |
|
| `REDIS_HOST` / `REDIS_PORT` / `REDIS_DB` / `REDIS_PASSWORD` | 全部 | 本機 `127.0.0.1` / 生產 `192.168.42.211` | 預設本機無密碼 |
|
||||||
|
|||||||
@@ -230,6 +230,19 @@ ALLOWED_HOST_LIST = external,192.168.42.0/24,loopback
|
|||||||
|
|
||||||
這次的 push 也是 **webhook pipeline 第一次真實使用**:push → Gitea 觸發 webhook → 42.104 自動 rsync → caddy 下次 request 即新版。之前都是用 Gitea API 的 test endpoint 模擬。
|
這次的 push 也是 **webhook pipeline 第一次真實使用**:push → Gitea 觸發 webhook → 42.104 自動 rsync → caddy 下次 request 即新版。之前都是用 Gitea API 的 test endpoint 模擬。
|
||||||
|
|
||||||
|
### 3.13.5 多點 union 掃描(zoom 調整)
|
||||||
|
|
||||||
|
原設計 `RADAR_ZOOM=11` 是給舊 pipeline(scp spots.json 給 caddy)用的,想一次抓整個北台灣。新 pipeline 前端會聚焦特定街區,zoom=11 下單位面積密度太低(實測 twpk 某 1km² 街區顯示 98 marker,我們 API 在同範圍為 0)。
|
||||||
|
|
||||||
|
改成 **多點 union**:
|
||||||
|
- `radar_fetcher.py` 支援 `RADAR_TARGETS=name:lat,lng;...` 環境變數
|
||||||
|
- 主流程 loop 每個 target 呼叫 Function Server,以 `(id, lat, lng, expire_time)` dedupe 後 union
|
||||||
|
- 單點失敗不阻斷其他 target
|
||||||
|
- 建議搭配 `RADAR_ZOOM=15` 街區級密度(zoom 越大單點範圍越小但回傳密度越高)
|
||||||
|
- `FETCH_LOCK_TTL` 拉高到 `400`(5 點序列跑總耗時 ~50s,但要留餘裕)
|
||||||
|
|
||||||
|
目前生產設定 5 個 target:台北車站 / 內湖南港 / 板橋 / 新竹 / 宜蘭。測試 twpk 內湖那個 1km² 街區:0 → 2 筆。還不理想但方向對;可加 target 或降 `MIN_REMAINING` 進一步補密度。
|
||||||
|
|
||||||
### 3.13 UI 顯示資料更新時間
|
### 3.13 UI 顯示資料更新時間
|
||||||
|
|
||||||
使用者想看到「這份資料什麼時候抓的」:
|
使用者想看到「這份資料什麼時候抓的」:
|
||||||
|
|||||||
Reference in New Issue
Block a user