clean up jobs

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

View File

@@ -188,11 +188,10 @@ 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()
} }
@@ -201,8 +200,7 @@ func (s *Server) StartHTTP(listenAddr string) (funcExecute, funcInterrupt) {
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,7 +212,10 @@ func (s *Server) StartScanTicker(dur time.Duration) (funcExecute, funcInterrupt)
} }
} }
} }
return execute, func(_ error) { return func() error {
log.Printf("starting job 'scan timer'\n")
return waitFor()
}, func(_ error) {
// stop job // stop job
ticker.Stop() ticker.Stop()
done <- struct{}{} done <- struct{}{}
@@ -222,11 +223,10 @@ func (s *Server) StartScanTicker(dur time.Duration) (funcExecute, funcInterrupt)
} }
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()
} }