Files

28 lines
683 B
Go

package router
import "git.ilapage.cn/OPC/chorus/internal/core/provider"
func ClassifyHTTPStatus(statusCode int) provider.FailureClass {
switch {
case statusCode == 429:
return provider.FailureRateLimited
case statusCode >= 500 && statusCode <= 599:
return provider.FailureServer
case statusCode == 400:
return provider.FailureBadRequest
case statusCode == 401:
return provider.FailureUnauthorized
default:
return provider.FailureOther
}
}
func Retryable(class provider.FailureClass) bool {
switch class {
case provider.FailureRateLimited, provider.FailureServer, provider.FailureTimeout, provider.FailureConnection:
return true
default:
return false
}
}