Skip to content

Commit

Permalink
signal handling in vanflow-tool
Browse files Browse the repository at this point in the history
Signed-off-by: Christian Kruse <christian@c-kruse.com>
  • Loading branch information
c-kruse committed Mar 11, 2024
1 parent b9c7083 commit 6d3783c
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 3 deletions.
21 changes: 20 additions & 1 deletion cmd/vanflow-tool/fixture.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,10 @@ func serveFixture(ctx context.Context, factory session.ContainerFactory) {
enc.Encode(response)
})

var wg sync.WaitGroup
wg.Add(1)
go func() {
defer wg.Done()
var managers []*eventsource.Manager
var (
manageCtx context.Context
Expand Down Expand Up @@ -121,7 +124,23 @@ func serveFixture(ctx context.Context, factory session.ContainerFactory) {

loggingHandler := handlers.LoggingHandler(os.Stdout, http.DefaultServeMux)
slog.Info("Starting server on :9080")
http.ListenAndServe(":9080", loggingHandler)
srv := &http.Server{
Addr: ":9080",
Handler: loggingHandler,
}
wg.Add(1)
go func() {
defer wg.Done()
if err := srv.ListenAndServe(); err != http.ErrServerClosed {
slog.Error("server error", slog.Any("error", err))
}
}()
<-ctx.Done()
slog.Info("shutting down")
shutdownCtx, cancel := context.WithTimeout(context.Background(), time.Second)
defer cancel()
srv.Shutdown(shutdownCtx)
wg.Wait()
}

func groupEntriesBySource(request ReplaceRequest) map[store.SourceRef][]store.Entry {
Expand Down
21 changes: 19 additions & 2 deletions cmd/vanflow-tool/serve.go
Original file line number Diff line number Diff line change
Expand Up @@ -168,8 +168,25 @@ func serveRecords(ctx context.Context, factory session.ContainerFactory) {
},
})
loggingHandler := handlers.LoggingHandler(os.Stdout, http.DefaultServeMux)
slog.Info("Starting server on :9090")
http.ListenAndServe(":9090", loggingHandler)
slog.Info("Starting server on :9080")
srv := &http.Server{
Addr: ":9090",
Handler: loggingHandler,
}
var wg sync.WaitGroup
wg.Add(1)
go func() {
defer wg.Done()
if err := srv.ListenAndServe(); err != http.ErrServerClosed {
slog.Error("server error", slog.Any("error", err))
}
}()
<-ctx.Done()
slog.Info("shutting down")
shutdownCtx, cancel := context.WithTimeout(context.Background(), time.Second)
defer cancel()
srv.Shutdown(shutdownCtx)
wg.Wait()
}

func newFixtureStore() store.Interface {
Expand Down

0 comments on commit 6d3783c

Please sign in to comment.