重试参数校验
This commit is contained in:
parent
f81f53bca4
commit
2bedc5fed8
@ -54,10 +54,10 @@ func RetryHandler(group *gin.RouterGroup) gin.HandlerFunc {
|
||||
// Retry
|
||||
maxRetryStr := c.Query("retry")
|
||||
maxRetry, err := strconv.Atoi(maxRetryStr)
|
||||
if err != nil || maxRetryStr == "" || maxRetry < 0 || maxRetry > common.RetryTimes {
|
||||
if err != nil || maxRetryStr == "" || maxRetry < 1 || maxRetry > common.RetryTimes {
|
||||
maxRetry = common.Max(common.RetryTimes+1, 1)
|
||||
}
|
||||
retryDelay := time.Duration(common.RetryInterval) * time.Millisecond
|
||||
retryDelay := time.Duration(common.Max(common.RetryInterval, 0)) * time.Millisecond
|
||||
for i := 0; i < maxRetry; i++ {
|
||||
if i == 0 {
|
||||
// 第一次请求, 直接执行使用c.Next()调用后续中间件, 防止直接使用handler 内部调用c.Next() 导致重复执行
|
||||
@ -86,9 +86,6 @@ func RetryHandler(group *gin.RouterGroup) gin.HandlerFunc {
|
||||
// If errors, retry after delay
|
||||
time.Sleep(retryDelay)
|
||||
}
|
||||
if len(c.Errors) == 0 {
|
||||
return
|
||||
}
|
||||
var openaiErr *OpenAIErrorWithStatusCode
|
||||
err = json.Unmarshal([]byte(c.Errors.Last().Error()), &openaiErr)
|
||||
if err != nil {
|
||||
|
@ -17,7 +17,7 @@ func SetRelayRouter(router *gin.Engine) {
|
||||
modelsRouter.GET("/:model", controller.RetrieveModel)
|
||||
}
|
||||
relayV1Router := router.Group("/v1")
|
||||
relayV1Router.Use(middleware.RetryHandler(relayV1Router))
|
||||
middleware.RetryHandler(relayV1Router)
|
||||
relayV1Router.Use(middleware.TokenAuth(), middleware.Distribute())
|
||||
{
|
||||
relayV1Router.POST("/completions", controller.Relay)
|
||||
|
Loading…
Reference in New Issue
Block a user