diff options
Diffstat (limited to 'main.go')
-rw-r--r-- | main.go | 35 |
1 files changed, 35 insertions, 0 deletions
@@ -0,0 +1,35 @@ +package main + +import ( + "context" + "log/slog" + "net/http" + "os" + "os/signal" + "time" + + "git.gabrielgio.me/cerrado/pkg/worker" +) + +func main() { + ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, os.Kill) + defer stop() + if err := run(ctx); err != nil { + os.Exit(1) + } +} + +func run(ctx context.Context) error { + mux := http.NewServeMux() + mux.HandleFunc("/", func(w http.ResponseWriter, _ *http.Request) { + if _, err := w.Write([]byte("Hello world!")); err != nil { + slog.Error("Error handling index", "error", err) + } + }) + serverTask := worker.NewServerTask(&http.Server{Handler: mux, Addr: "0.0.0.0:8080"}) + + pool := worker.NewTaskPool() + pool.AddTask("http-server", 5*time.Second, serverTask) + + return pool.Start(ctx) +} |