http and common
Build and Publish / BuildAndDeployAmd64 (push) Failing after 5s
Build and Publish / BuildAndDeployArm64 (push) Failing after 14s

This commit is contained in:
2026-07-18 23:23:27 +02:00
parent c150ac635c
commit 81569b051a
9 changed files with 207 additions and 328 deletions
+11 -22
View File
@@ -4,9 +4,7 @@ import (
"context"
"crypto/rand"
"encoding/hex"
"fmt"
"log"
"net"
"net/http"
"net/mail"
"os"
@@ -22,6 +20,7 @@ import (
"git.k6n.net/mats/go-cart-actor/pkg/proxy"
"git.k6n.net/mats/go-cart-actor/pkg/telemetry"
"git.k6n.net/mats/platform/config"
"git.k6n.net/mats/platform/httpserver"
"git.k6n.net/mats/platform/rabbit"
"github.com/redis/go-redis/v9"
"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"
@@ -311,35 +310,25 @@ func main() {
w.Write([]byte("1.0.0"))
})
// Debug mux on separate port (metrics + pprof).
go http.ListenAndServe(":8081", debugMux)
srv := &http.Server{
Addr: config.EnvString("PROFILE_ADDR", ":8080"),
BaseContext: func(net.Listener) context.Context { return ctx },
ReadTimeout: 10 * time.Second,
WriteTimeout: 20 * time.Second,
Handler: otelhttp.NewHandler(mux, "/"),
}
defer func() {
fmt.Println("Shutting down profile service")
otelShutdown(context.Background())
diskStorage.Close()
pool.Close()
}()
srvErr := make(chan error, 1)
go func() {
srvErr <- srv.ListenAndServe()
}()
log.Print("Profile server started at port 8080")
go http.ListenAndServe(":8081", debugMux)
select {
case err = <-srvErr:
log.Fatalf("Unable to start server: %v", err)
case <-ctx.Done():
stop()
if err := httpserver.RunServerWithShutdown(srv, "profile", 15*time.Second, 5*time.Second,
func(context.Context) error { stop(); return nil },
func(context.Context) error { otelShutdown(context.Background()); return nil },
func(context.Context) error { diskStorage.Close(); return nil },
func(context.Context) error { pool.Close(); return nil },
); err != nil {
log.Fatalf("server: %v", err)
}
}