Merge pull request '升级RateLimiter接口约束' (#11) from feature/upgrade_rate_limiter into master
Reviewed-on: #11
This commit is contained in:
commit
7b1a36a7c3
@ -7,7 +7,9 @@
|
|||||||
// Date : 2025-05-07 21:13
|
// Date : 2025-05-07 21:13
|
||||||
package abstract
|
package abstract
|
||||||
|
|
||||||
|
import "git.zhangdeman.cn/zhangdeman/network/httpclient/define"
|
||||||
|
|
||||||
// RateLimiter v2 流控口约束, v3移除了, 人工补齐
|
// RateLimiter v2 流控口约束, v3移除了, 人工补齐
|
||||||
type RateLimiter interface {
|
type RateLimiter interface {
|
||||||
Allow() bool
|
Allow(reqCfg *define.Request) bool
|
||||||
}
|
}
|
||||||
|
@ -7,34 +7,6 @@
|
|||||||
// Date : 2024-05-31 14:51
|
// Date : 2024-05-31 14:51
|
||||||
package define
|
package define
|
||||||
|
|
||||||
// Http4xxHandler 4xx handler
|
|
||||||
//
|
|
||||||
// Author : go_developer@163.com<白茶清欢>
|
|
||||||
//
|
|
||||||
// Date : 14:54 2024/5/31
|
|
||||||
type Http4xxHandler func(req *Request, rep *Response)
|
|
||||||
|
|
||||||
// Http5xxHandler 5xx handler
|
|
||||||
//
|
|
||||||
// Author : go_developer@163.com<白茶清欢>
|
|
||||||
//
|
|
||||||
// Date : 14:55 2024/5/31
|
|
||||||
type Http5xxHandler func(req *Request, rep *Response)
|
|
||||||
|
|
||||||
// HttpBusinessErrorHandler 接口请求业务错误
|
|
||||||
//
|
|
||||||
// Author : go_developer@163.com<白茶清欢>
|
|
||||||
//
|
|
||||||
// Date : 18:04 2024/6/1
|
|
||||||
type HttpBusinessErrorHandler func(req *Request, rep *Response)
|
|
||||||
|
|
||||||
// RequestSendErrorHandler 请求发送失败的处理逻辑
|
|
||||||
//
|
|
||||||
// Author : go_developer@163.com<白茶清欢>
|
|
||||||
//
|
|
||||||
// Date : 18:23 2024/6/1
|
|
||||||
type RequestSendErrorHandler func(req *Request)
|
|
||||||
|
|
||||||
// RequestFinishHandler 请求最终完成事件, 不区分成功 OR 失败
|
// RequestFinishHandler 请求最终完成事件, 不区分成功 OR 失败
|
||||||
//
|
//
|
||||||
// Author : go_developer@163.com<白茶清欢>
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
@ -87,7 +87,7 @@ func NewRestyClient(reqConfig *define.Request, reqOption *RequestOption) (*resty
|
|||||||
// 未配置流控
|
// 未配置流控
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
if !reqOption.RateLimiter.Allow() {
|
if !reqOption.RateLimiter.Allow(reqConfig) {
|
||||||
// 命中流控
|
// 命中流控
|
||||||
return define.ErrRateLimitExceeded
|
return define.ErrRateLimitExceeded
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user