clean up jobs

This commit is contained in:
sentriz
2020-04-24 22:11:24 +01:00
parent e966fffc21
commit 13427e77d2

View File

@@ -188,21 +188,19 @@ func (s *Server) StartHTTP(listenAddr string) (funcExecute, funcInterrupt) {
WriteTimeout: 80 * time.Second, WriteTimeout: 80 * time.Second,
IdleTimeout: 60 * time.Second, IdleTimeout: 60 * time.Second,
} }
execute := func() error { return func() error {
log.Print("starting job 'http'\n") log.Print("starting job 'http'\n")
return list.ListenAndServe() return list.ListenAndServe()
} }, func(_ error) {
return execute, func(_ error) { // stop job
// stop job list.Close()
list.Close() }
}
} }
func (s *Server) StartScanTicker(dur time.Duration) (funcExecute, funcInterrupt) { func (s *Server) StartScanTicker(dur time.Duration) (funcExecute, funcInterrupt) {
ticker := time.NewTicker(dur) ticker := time.NewTicker(dur)
done := make(chan struct{}) done := make(chan struct{})
execute := func() error { waitFor := func() error {
log.Printf("starting job 'scan timer'\n")
for { for {
select { select {
case <-done: case <-done:
@@ -214,20 +212,22 @@ func (s *Server) StartScanTicker(dur time.Duration) (funcExecute, funcInterrupt)
} }
} }
} }
return execute, func(_ error) { return func() error {
// stop job log.Printf("starting job 'scan timer'\n")
ticker.Stop() return waitFor()
done <- struct{}{} }, func(_ error) {
} // stop job
ticker.Stop()
done <- struct{}{}
}
} }
func (s *Server) StartJukebox() (funcExecute, funcInterrupt) { func (s *Server) StartJukebox() (funcExecute, funcInterrupt) {
execute := func() error { return func() error {
log.Printf("starting job 'jukebox'\n") log.Printf("starting job 'jukebox'\n")
return s.jukebox.Listen() return s.jukebox.Listen()
} }, func(_ error) {
return execute, func(_ error) { // stop job
// stop job s.jukebox.Quit()
s.jukebox.Quit() }
}
} }