github.com/gocrane/crane@v0.11.0/pkg/recommendation/recommender/base/registry.go (about) 1 package base 2 3 import ( 4 "time" 5 6 "github.com/gocrane/crane/pkg/recommendation/recommender" 7 "github.com/gocrane/crane/pkg/recommendation/recommender/apis" 8 ) 9 10 var _ recommender.Recommender = &BaseRecommender{} 11 12 const DefaultCreationCoolDown = time.Minute * 3 13 14 type BaseRecommender struct { 15 apis.Recommender 16 CreationCoolDown time.Duration 17 } 18 19 func (br *BaseRecommender) Name() string { 20 return "" 21 } 22 23 // NewBaseRecommender create a new base recommender. 24 func NewBaseRecommender(recommender apis.Recommender) *BaseRecommender { 25 creationCoolDown, exists := recommender.Config["creation-cooldown"] 26 creationCoolDownDuration, err := time.ParseDuration(creationCoolDown) 27 if err != nil || !exists { 28 creationCoolDownDuration = DefaultCreationCoolDown 29 } 30 31 return &BaseRecommender{ 32 recommender, 33 creationCoolDownDuration, 34 } 35 }