Documentation
¶
Index ¶
- type Rule
- func (r *Rule) AddRule(defaultExpiration time.Duration, numberOfAllowedAccesses int, ...) error
- func (r *Rule) AllowVisit(key interface{}) (bool, error)
- func (r *Rule) ManualEmptyVisitorRecordsOf(key interface{}) error
- func (r *Rule) PrintRemainingVisits(key interface{}, language ...int)
- func (r *Rule) RemainingVisits(key interface{}) []int
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Rule ¶
type Rule struct {
// contains filtered or unexported fields
}
Rule 用户访问控制策略,可由一个或多个访问控制规则组成
func NewRule ¶
func NewRule() *Rule
NewRule 初始化一个多重规则的频率控制策略,例:
r := NewRule() 初始化之后,紧跟着需要调用AddRule方法增加一条或若干条用户访问控制策略,增加用户访问控制策略后,才可以正式使用
func (*Rule) AddRule ¶
func (r *Rule) AddRule(defaultExpiration time.Duration, numberOfAllowedAccesses int, estimatedNumberOfOnlineUserNum ...int) error
AddRule 增加用户访问控制策略,例:
r.AddRule(time.Minute*5, 20) 在5分钟内每个用户最多允许访问20次 r.AddRule(time.Minute*30, 50) 在30分钟内每个用户最多允许访问50次 r.AddRule(time.Hour*24, 200) 在24小时内每个用户最多允许访问200次 其中: defaultExpiration 表示在某个时间段内 numberOfAllowedAccesses 表示允许访问的次数 estimatedNumberOfOnlineUserNum 表示预计可能有多少人访问,此参数为可变参数,可不填写 以上任何一条用户访问控制策略没通过,都不允许访问,注意单条规则中,不宜设定监控时间段过大的规则,比如设定监控某个用户一个月甚至是1年的访问规则,它会占用大多的内存
func (*Rule) AllowVisit ¶
AllowVisit 是否还允许某用户访问,如果访问量过多,超出各细分规则中任何一条规则规定的访问量,则不允许访问
无论是否允许访问都会尝试在各细分访问规则记录中增加一条访问日志记录,函数AllowVisit也可以认为
是AddRecords
例:
AllowVisit("username")
func (*Rule) ManualEmptyVisitorRecordsOf ¶
ManualEmptyVisitorRecordsOf 人工清空某用户的访问数据,主要针对某些特定客户的个性化需求,比如某个客户要求临时允许其访问更多的页面,
此时,调用出函数,清空其历史访问数据,间接实现这个目的,例:ManualEmptyVisitorRecordsOf("andyyu")
func (*Rule) PrintRemainingVisits ¶
PrintRemainingVisits 打印各细分规则下的剩余访问次数
func (*Rule) RemainingVisits ¶
RemainingVisits 某用户剩余访问次数,例:RemainingVisits("username")
Click to show internal directories.
Click to hide internal directories.