From 35042b859a41f6f33d5dc0ee922814023035a34a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Thu, 20 Oct 2022 16:20:49 +0300 Subject: [PATCH] Timeout for whole handler --- cmd/client_server/server.go | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/cmd/client_server/server.go b/cmd/client_server/server.go index 1a304ae..bd0cab4 100644 --- a/cmd/client_server/server.go +++ b/cmd/client_server/server.go @@ -5,11 +5,43 @@ import ( "log" "net/http" customtypes "sample-choose-ad/cmd/custom_types" + "time" ) +type customHandler struct { + Parners []customtypes.PartnersAddress + // context? +} + +func (c *customHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { + base := r.URL.Path + + switch base { + case "/placements/request": + + default: + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(http.StatusBadRequest) + } +} + +func newCustomHandler() *customHandler { + return &customHandler{} +} + func StartServer(port string, partners []customtypes.PartnersAddress) { + // mux := http.NewServeMux() + // mux.HandleFunc("/placements/request", handleRequest(partners)) - http.HandleFunc("/placements/request", handleRequest(partners)) + // s := &http.Server{ + // ReadTimeout: time.Duration(time.Millisecond * 20), + // WriteTimeout: time.Duration(time.Millisecond * 20), + // Handler: newCustomHandler(), + // } + // s.ListenAndServe() + // h := http.HandleFunc("/placements/request", handleRequest(partners)) + h := http.TimeoutHandler(handleRequest(partners), time.Duration(240*time.Millisecond), "{}") + http.Handle("/placements/request", h) // http.HandleFunc("/placements/request", decorate(test2)) log.Fatal(http.ListenAndServe(fmt.Sprintf(":%v", port), nil))