MM-8607 Add ability to turn off non-critical services when under load (#13212)
* MM-8607: add ability to turn off non-critical services under load * server busy invalid param unit tests * MM-8607: rename server busy endpoints * MM-8607: handle case where App not initialized * MM-8607: additional unit test cases per feedback. * MM-8607: use decorator to check isbusy when adding endpoint route * MM-8607: rename endpoints, use struct for json * Update api4/system.go Fix misspelled log output Co-Authored-By: Saturnino Abril <saturnino.abril@gmail.com> * MM-8607: fix i18n order; max seconds for server busy expiry
Этот коммит содержится в:
коммит произвёл
Joram Wilander
родитель
3cb3d874b8
Коммит
5abbe50258
@@ -107,3 +107,23 @@ func (api *API) ApiSessionRequiredTrustRequester(h func(*Context, http.ResponseW
|
||||
return handler
|
||||
|
||||
}
|
||||
|
||||
// DisableWhenBusy provides a handler for API endpoints which should be disabled when the server is under load,
|
||||
// responding with HTTP 503 (Service Unavailable).
|
||||
func (api *API) ApiSessionRequiredDisableWhenBusy(h func(*Context, http.ResponseWriter, *http.Request)) http.Handler {
|
||||
handler := &web.Handler{
|
||||
GetGlobalAppOptions: api.GetGlobalAppOptions,
|
||||
HandleFunc: h,
|
||||
HandlerName: web.GetHandlerName(h),
|
||||
RequireSession: true,
|
||||
TrustRequester: false,
|
||||
RequireMfa: false,
|
||||
IsStatic: false,
|
||||
DisableWhenBusy: true,
|
||||
}
|
||||
if *api.ConfigService.Config().ServiceSettings.WebserverMode == "gzip" {
|
||||
return gziphandler.GzipHandler(handler)
|
||||
}
|
||||
return handler
|
||||
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user