Phorge 現代化改造實戰:用 Go 接管工作佇列與消費權交接
Phorge 現代化改造實戰,詳細記錄用 Go 服務接管有狀態後台工作队列的架構取捨與踩坑防範。
• 本文為 Phorge 現代化改造系列第十五篇,重點探討如何將有狀態的後台任務佇列從 PHP 遷移至 Go 服務。 • 系統架構拆分為負責佇列狀態的 gorge-taskqueue 與處理消費循環的 gorge-worker,維持清晰的 HTTP 邊界以利獨立擴展。 • 在資料庫相容性上,必須嚴格維持 Phorge 原生的 lisk_counter 序列與三張舊表語義,避免因自增 ID 碰撞或欄位缺失導致系統異常。 • 透過 Conduit 協定串接未重寫的 PHP 業務邏輯,讓新舊消費者在過渡期能平穩交接。 • > 「服務『在運行』、『可達』、『就緒』、『已被選擇』和『業務生效』是五個不同狀態。」 • 必須將舊的 phd.taskmasters 設為 0,以確保任務所有權唯一,避免新舊消費者互相搶任務。 • 部署時應採用惰性連接解決首次啟動的資料庫依賴死結,並依序完成驗證、配置切換與舊進程退出。
來源:蘇洋博客
閱讀原文 ↗