Files
any-hub/internal/hubmodule/strategy.go
Rogee 40c6f2fcce fix: align cache controls with config
Remove unused head-check config, make TTL overrides explicit, and tighten revalidation to avoid stale cache behavior.
2026-01-26 15:55:03 +08:00

36 lines
900 B
Go

package hubmodule
import "time"
// StrategyOptions 描述来自 Hub Config 的 override。
type StrategyOptions struct {
TTLOverride time.Duration
ValidationOverride ValidationMode
}
// ResolveStrategy 将模块的默认策略与 hub 级覆盖合并。
func ResolveStrategy(meta ModuleMetadata, opts StrategyOptions) CacheStrategyProfile {
strategy := meta.CacheStrategy
if opts.ValidationOverride != "" {
strategy.ValidationMode = opts.ValidationOverride
}
strategy = normalizeStrategy(strategy)
if opts.TTLOverride > 0 {
strategy.TTLHint = opts.TTLOverride
}
return strategy
}
func normalizeStrategy(profile CacheStrategyProfile) CacheStrategyProfile {
if profile.TTLHint < 0 {
profile.TTLHint = 0
}
if profile.ValidationMode == "" {
profile.ValidationMode = ValidationModeETag
}
if profile.DiskLayout == "" {
profile.DiskLayout = "raw_path"
}
return profile
}