- ebai限访问频率按门店来
This commit is contained in:
@@ -8,34 +8,82 @@ const (
|
||||
|
||||
var (
|
||||
apiLimitConfigs = map[string]*platformapi.LimiterConfig{
|
||||
allAPI: &platformapi.LimiterConfig{
|
||||
MaxAccessCount: 5,
|
||||
// allAPI: &platformapi.LimiterConfig{
|
||||
// MaxAccessCount: 5,
|
||||
// TimeGapMilliSecond: 1000,
|
||||
// },
|
||||
"sku.shop.category.update": &platformapi.LimiterConfig{
|
||||
MaxAccessCount: 5 - 1,
|
||||
TimeGapMilliSecond: 1000,
|
||||
},
|
||||
"sku.shop.category.delete": &platformapi.LimiterConfig{
|
||||
MaxAccessCount: 5 - 1,
|
||||
TimeGapMilliSecond: 1000,
|
||||
},
|
||||
"sku.create": &platformapi.LimiterConfig{
|
||||
MaxAccessCount: 5 - 1,
|
||||
TimeGapMilliSecond: 1000,
|
||||
},
|
||||
"sku.delete": &platformapi.LimiterConfig{
|
||||
"sku.online": &platformapi.LimiterConfig{
|
||||
MaxAccessCount: 1,
|
||||
TimeGapMilliSecond: 2000,
|
||||
TimeGapMilliSecond: 1000 + 200,
|
||||
},
|
||||
"sku.shop.category.delete": &platformapi.LimiterConfig{
|
||||
MaxAccessCount: 1,
|
||||
"sku.online.one": &platformapi.LimiterConfig{
|
||||
MaxAccessCount: 10 - 1,
|
||||
TimeGapMilliSecond: 1000,
|
||||
},
|
||||
"sku.shop.category.create": &platformapi.LimiterConfig{
|
||||
MaxAccessCount: 2,
|
||||
"sku.offline": &platformapi.LimiterConfig{
|
||||
MaxAccessCount: 1,
|
||||
TimeGapMilliSecond: 1000 + 200,
|
||||
},
|
||||
"sku.offline.one": &platformapi.LimiterConfig{
|
||||
MaxAccessCount: 10 - 1,
|
||||
TimeGapMilliSecond: 1000,
|
||||
},
|
||||
"sku.update": &platformapi.LimiterConfig{
|
||||
MaxAccessCount: 5 - 1,
|
||||
TimeGapMilliSecond: 1000,
|
||||
},
|
||||
"sku.list": &platformapi.LimiterConfig{
|
||||
MaxAccessCount: 5 - 3,
|
||||
MaxAccessCount: 5 - 1,
|
||||
TimeGapMilliSecond: 1000,
|
||||
},
|
||||
"sku.price.update.batch": &platformapi.LimiterConfig{
|
||||
MaxAccessCount: 1,
|
||||
TimeGapMilliSecond: 1000 + 200,
|
||||
},
|
||||
"sku.stock.update.batch": &platformapi.LimiterConfig{
|
||||
MaxAccessCount: 2,
|
||||
TimeGapMilliSecond: 1000 + 200,
|
||||
},
|
||||
"sku.delete": &platformapi.LimiterConfig{
|
||||
MaxAccessCount: 1,
|
||||
TimeGapMilliSecond: 1000 + 200,
|
||||
},
|
||||
"sku.shop.category.create": &platformapi.LimiterConfig{
|
||||
MaxAccessCount: 5 - 1,
|
||||
TimeGapMilliSecond: 1000,
|
||||
},
|
||||
"sku.shop.category.map": &platformapi.LimiterConfig{
|
||||
MaxAccessCount: 10 - 1,
|
||||
TimeGapMilliSecond: 1000,
|
||||
},
|
||||
"sku.category.list": &platformapi.LimiterConfig{
|
||||
MaxAccessCount: 1,
|
||||
TimeGapMilliSecond: 1000 + 200,
|
||||
},
|
||||
"sku.brand.list": &platformapi.LimiterConfig{
|
||||
MaxAccessCount: 5 - 1,
|
||||
TimeGapMilliSecond: 1000,
|
||||
},
|
||||
"sku.shop.category.get": &platformapi.LimiterConfig{
|
||||
MaxAccessCount: 5 - 1,
|
||||
TimeGapMilliSecond: 1000,
|
||||
},
|
||||
}
|
||||
|
||||
defaultAPILimitConfig = &platformapi.LimiterConfig{
|
||||
MaxAccessCount: 5 - 2,
|
||||
TimeGapMilliSecond: 1000,
|
||||
}
|
||||
// defaultAPILimitConfig = &platformapi.LimiterConfig{
|
||||
// MaxAccessCount: 5 - 1,
|
||||
// TimeGapMilliSecond: 1000,
|
||||
// }
|
||||
)
|
||||
|
||||
@@ -63,7 +63,7 @@ func New(source, secret string, config ...*platformapi.APIConfig) *API {
|
||||
secret: secret,
|
||||
client: &http.Client{Timeout: curConfig.ClientTimeout},
|
||||
config: &curConfig,
|
||||
speedLimiter: platformapi.New(apiLimitConfigs, defaultAPILimitConfig),
|
||||
speedLimiter: platformapi.New(apiLimitConfigs, nil), //defaultAPILimitConfig),
|
||||
storeCookies: make(map[string]string),
|
||||
}
|
||||
return api
|
||||
@@ -96,7 +96,7 @@ func (a *API) getShopID(body map[string]interface{}) (shopID string) {
|
||||
func (a *API) AccessAPI(cmd string, body map[string]interface{}) (retVal *ResponseResult, err error) {
|
||||
baseapi.SugarLogger.Debugf("ebai AccessAPI cmd:%s", cmd)
|
||||
// a.speedLimiter.AccessAPI(allAPI)
|
||||
a.speedLimiter.AccessAPI(cmd)
|
||||
a.speedLimiter.AccessAPI(cmd, a.getShopID(body))
|
||||
if body == nil {
|
||||
body = make(map[string]interface{}, 0)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user