cerrado @ 3fb9c66ffa0bf87cbd7cc1b5f4129f3447e94c13

 1package main
 2
 3import (
 4	"context"
 5	"log/slog"
 6	"net/http"
 7	"os"
 8	"os/signal"
 9	"time"
10
11	"git.gabrielgio.me/cerrado/pkg/worker"
12)
13
14func main() {
15	ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, os.Kill)
16	defer stop()
17	if err := run(ctx); err != nil {
18		os.Exit(1)
19	}
20}
21
22func run(ctx context.Context) error {
23	mux := http.NewServeMux()
24	mux.HandleFunc("/", func(w http.ResponseWriter, _ *http.Request) {
25		if _, err := w.Write([]byte("Hello world!")); err != nil {
26			slog.Error("Error handling index", "error", err)
27		}
28	})
29	serverTask := worker.NewServerTask(&http.Server{Handler: mux, Addr: "0.0.0.0:8080"})
30
31	pool := worker.NewTaskPool()
32	pool.AddTask("http-server", 5*time.Second, serverTask)
33
34	return pool.Start(ctx)
35}