clean up jobs
This commit is contained in:
@@ -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()
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user