mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-09-29 14:06:36 +08:00
34 lines
716 B
Go
34 lines
716 B
Go
// Copyright 2026 Arctel.net
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package dashboard
|
|
|
|
import (
|
|
"sync"
|
|
"time"
|
|
)
|
|
|
|
const overviewCacheTTL = 30 * time.Second
|
|
|
|
var overviewCache struct {
|
|
mu sync.Mutex
|
|
payload *OverviewPayload
|
|
expiresAt time.Time
|
|
}
|
|
|
|
func getCachedOverview() (*OverviewPayload, bool) {
|
|
overviewCache.mu.Lock()
|
|
defer overviewCache.mu.Unlock()
|
|
if overviewCache.payload == nil || time.Now().After(overviewCache.expiresAt) {
|
|
return nil, false
|
|
}
|
|
return overviewCache.payload, true
|
|
}
|
|
|
|
func setCachedOverview(payload *OverviewPayload) {
|
|
overviewCache.mu.Lock()
|
|
defer overviewCache.mu.Unlock()
|
|
overviewCache.payload = payload
|
|
overviewCache.expiresAt = time.Now().Add(overviewCacheTTL)
|
|
}
|