refactor(core): remove store global singleton, thread store explicitly
Remove store.Get()/SetGlobal()/Current. Store is now passed explicitly to all consumers via constructor parameters and function arguments. - TUI Model holds store field, set via InitialModel(isAdmin, store) - monitor.StartEngine(s) and InitHistoryFromStore(s) accept store - server.Start(cfg, s) closes over store in HTTP handlers - main.go threads store to SSH server, TUI, monitor, server - isKeyAllowed receives store as parameter No more hidden dependency on package-level mutable state in store pkg. Monitor package still uses package-level state (LiveState, etc.) — will be encapsulated into Engine struct in Phase 7.
This commit is contained in:
@@ -20,11 +20,7 @@ var (
|
||||
historyMu sync.RWMutex
|
||||
)
|
||||
|
||||
func InitHistoryFromStore() {
|
||||
s := store.Get()
|
||||
if s == nil {
|
||||
return
|
||||
}
|
||||
func InitHistoryFromStore(s store.Store) {
|
||||
all, err := s.LoadAllHistory(maxHistoryLen)
|
||||
if err != nil {
|
||||
AddLog("Failed to load check history: " + err.Error())
|
||||
@@ -74,8 +70,8 @@ func RecordCheck(siteID int, latency time.Duration, isUp bool) {
|
||||
h.Statuses = h.Statuses[len(h.Statuses)-maxHistoryLen:]
|
||||
}
|
||||
|
||||
if s := store.Get(); s != nil {
|
||||
go func() { _ = s.SaveCheck(siteID, latency.Nanoseconds(), isUp) }()
|
||||
if db != nil {
|
||||
go func() { _ = db.SaveCheck(siteID, latency.Nanoseconds(), isUp) }()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user