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  }