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) +}  | 
