package worker import ( "context" "net/http" ) type ServerTask struct { server *http.Server } func NewServerTask(server *http.Server) *ServerTask { return &ServerTask{ server: server, } } func (self *ServerTask) Start(ctx context.Context) error { go func() { // nolint: errcheck self.server.ListenAndServe() }() <-ctx.Done() return self.server.Shutdown(ctx) }