Change logger to slog
This commit is contained in:
@@ -2,7 +2,7 @@ package worker
|
||||
|
||||
import (
|
||||
"context"
|
||||
"log"
|
||||
"log/slog"
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
@@ -17,12 +17,21 @@ type Worker interface {
|
||||
}
|
||||
|
||||
type CallbackWorker struct {
|
||||
name string
|
||||
f func() error
|
||||
name string
|
||||
f func() error
|
||||
logger *slog.Logger
|
||||
}
|
||||
|
||||
func NewCallbackWorker(name string, f func() error) *CallbackWorker {
|
||||
return &CallbackWorker{name, f}
|
||||
func NewCallbackWorker(name string, f func() error, logger *slog.Logger) *CallbackWorker {
|
||||
if logger == nil {
|
||||
logger = slog.Default()
|
||||
}
|
||||
|
||||
return &CallbackWorker{
|
||||
name: name,
|
||||
f: f,
|
||||
logger: logger,
|
||||
}
|
||||
}
|
||||
|
||||
func (w *CallbackWorker) Name() string {
|
||||
@@ -30,12 +39,12 @@ func (w *CallbackWorker) Name() string {
|
||||
}
|
||||
|
||||
func (w *CallbackWorker) Start(ctx context.Context) {
|
||||
log.Printf("%s started", w.Name())
|
||||
w.logger.Info("Worker started", "worker_name", w.Name())
|
||||
|
||||
for {
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
log.Printf("%s received shutdown signal", w.Name())
|
||||
w.logger.Info("Worker received shutdown signal", "worker_name", w.Name())
|
||||
return
|
||||
default:
|
||||
err := w.f()
|
||||
@@ -44,13 +53,13 @@ func (w *CallbackWorker) Start(ctx context.Context) {
|
||||
metrics.WorkerJobCounter.WithLabelValues(w.Name(), strconv.FormatBool(err != nil)).Inc()
|
||||
}
|
||||
if err != nil && !isNoop {
|
||||
log.Printf("%s error: %v", w.Name(), err)
|
||||
w.logger.Error("Worker error", "worker_name", w.Name(), "error", err)
|
||||
}
|
||||
|
||||
// Ждем 1 секунду перед следующей итерацией
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
log.Printf("%s received shutdown signal during sleep", w.Name())
|
||||
w.logger.Info("Worker received shutdown signal during sleep", "worker_name", w.Name())
|
||||
return
|
||||
case <-time.After(1 * time.Second):
|
||||
// Продолжаем работу
|
||||
|
Reference in New Issue
Block a user