Don't log notices on worker start/stop
This commit is contained in:
parent
e21ffb6eb4
commit
61041dbd1b
13
satan.go
13
satan.go
|
@ -6,7 +6,6 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"runtime/debug"
|
"runtime/debug"
|
||||||
"sync"
|
"sync"
|
||||||
"sync/atomic"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/localhots/satan/stats"
|
"github.com/localhots/satan/stats"
|
||||||
|
@ -62,10 +61,6 @@ const (
|
||||||
DefaultNumWorkers = 10
|
DefaultNumWorkers = 10
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
|
||||||
workerIndex uint64
|
|
||||||
)
|
|
||||||
|
|
||||||
// Summon creates a new instance of Satan.
|
// Summon creates a new instance of Satan.
|
||||||
func Summon() *Satan {
|
func Summon() *Satan {
|
||||||
return &Satan{
|
return &Satan{
|
||||||
|
@ -94,6 +89,7 @@ func (s *Satan) AddDaemon(d Daemon) {
|
||||||
|
|
||||||
// StartDaemons starts all registered daemons.
|
// StartDaemons starts all registered daemons.
|
||||||
func (s *Satan) StartDaemons() {
|
func (s *Satan) StartDaemons() {
|
||||||
|
s.Logger.Printf("Starting %d workers", s.NumWorkers)
|
||||||
for i := 0; i < s.NumWorkers; i++ {
|
for i := 0; i < s.NumWorkers; i++ {
|
||||||
go s.runWorker()
|
go s.runWorker()
|
||||||
}
|
}
|
||||||
|
@ -118,13 +114,9 @@ func (s *Satan) StopDaemons() {
|
||||||
func (s *Satan) runWorker() {
|
func (s *Satan) runWorker() {
|
||||||
s.wgWorkers.Add(1)
|
s.wgWorkers.Add(1)
|
||||||
defer s.wgWorkers.Done()
|
defer s.wgWorkers.Done()
|
||||||
|
|
||||||
i := atomic.AddUint64(&workerIndex, 1)
|
|
||||||
s.Logger.Printf("Starting worker #%d", i)
|
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
if err := recover(); err != nil {
|
if err := recover(); err != nil {
|
||||||
s.Logger.Printf("Worker #%d crashed. Error: %v\n", i, err)
|
s.Logger.Printf("Worker crashed. Error: %v\n", err)
|
||||||
debug.PrintStack()
|
debug.PrintStack()
|
||||||
go s.runWorker() // Restarting worker
|
go s.runWorker() // Restarting worker
|
||||||
}
|
}
|
||||||
|
@ -138,7 +130,6 @@ func (s *Satan) runWorker() {
|
||||||
s.runtimeStats.Add(stats.TaskWait, time.Duration(dur))
|
s.runtimeStats.Add(stats.TaskWait, time.Duration(dur))
|
||||||
s.processTask(t)
|
s.processTask(t)
|
||||||
case <-s.shutdownWorkers:
|
case <-s.shutdownWorkers:
|
||||||
s.Logger.Printf("Worker #%d has stopped", i)
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue