昨天 API Key 裝上去,算是有了「門鎖」。但門鎖只能保護屋子,還不能確保「通知能送到」。
今天 Codex 升級施工,把系統變成一個小型物流中心:
Gemini 則扮演工地主任,一邊驗收一邊碎念:「還要加監控!還要做快取!還要記得更新 README!」
根據今天的 commit log 與紀錄:
TeamsBroadcastService 上線
teams_token_provider.go
,用 Client Credentials Flow 向 Azure AD 拿 token,並快取起來避免被 rate limit。TeamsBroadcastService
出發前先去拿 token,然後加上 Authorization: Bearer xxx
header 才送消息。Redis Queue + Worker
internal/queue
+ internal/worker
模組,Worker 從 Redis 拉任務,再呼叫 BroadcastService。cmd/worker/main.go
,現在可以直接跑 go run ./cmd/worker
啟動背景進程。測試
go test ./...
全部綠 ✅。文件更新
README.md
、doc/Requirement.md
都加上了 OAuth、backoff、worker 啟動方法。feat(notification): add redis queue worker with teams token auth
。Gemini 針對今天的成果,提出了幾個建議:
Token Caching 要更穩
Retry 要可配置
監控要升級
/metrics
,讓 Prometheus 可以抓。TeamsBroadcastService 要補完
文件再補充
一句話總結:「Redis 倉庫建好了,但還需要物流 SOP。」
今天的系統正式邁向「可擴展」:
但也有不足:
就像今天開了一個物流中心,有倉庫、有叉車,但還沒接到真正的訂單。
✍️ Day16 收工感言
今天是重大里程碑:Redis queue + Worker 落地,系統終於能「派工」而不只是「即送即炸」。
雖然廣播還沒真的唱歌,但舞台、燈光、麥克風、搬運工都準備好了。
明天,要讓 Teams 真的聽到我們的聲音。 🚀