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}