- ebai限访问频率按门店来

This commit is contained in:
gazebo
2019-04-10 14:31:38 +08:00
parent df987cd93e
commit 9fd70a7446
4 changed files with 89 additions and 31 deletions

View File

@@ -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,
// }
)

View File

@@ -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)
}