Files
rootandClaude Opus 5 8679200f41 Initial commit
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 13:57:10 +08:00

44 lines
1.3 KiB
Go

package appg
import "time"
const (
defaultShortRecommendRequestTimeout = 3 * time.Second
defaultShortRecommendKeyTTLHours = 72
)
// ShortRecommendConfig 控制App侧短视频环形队列读取行为。
// Enabled 使用指针是为了兼容旧配置:未配置时默认启用。
type ShortRecommendConfig struct {
Enabled *bool `json:"enabled"`
RequestTimeoutMs int `json:"requestTimeoutMs"`
MaxBatches int `json:"maxBatches"`
ScanMultiplier int `json:"scanMultiplier"`
KeyTTLHours int `json:"keyTTLHours"`
}
func (c *GlobalConfig) ShortRecommendEnabled() bool {
return c == nil || c.ShortRecommend.Enabled == nil || *c.ShortRecommend.Enabled
}
func (c *GlobalConfig) ShortRecommendRequestTimeout() time.Duration {
if c == nil || c.ShortRecommend.RequestTimeoutMs <= 0 {
return defaultShortRecommendRequestTimeout
}
timeout := time.Duration(c.ShortRecommend.RequestTimeoutMs) * time.Millisecond
if timeout < 100*time.Millisecond {
return 100 * time.Millisecond
}
if timeout > 10*time.Second {
return 10 * time.Second
}
return timeout
}
func (c *GlobalConfig) ShortRecommendKeyTTL() int {
if c == nil || c.ShortRecommend.KeyTTLHours <= 0 {
return defaultShortRecommendKeyTTLHours
}
return c.ShortRecommend.KeyTTLHours
}