Files
015/worker/middleware/logger.go

25 lines
608 B
Go

package middleware
import (
"context"
"time"
"github.com/hibiken/asynq"
"go.uber.org/zap"
)
func LoggerMiddleware(h asynq.Handler) asynq.Handler {
return asynq.HandlerFunc(func(ctx context.Context, t *asynq.Task) error {
start := time.Now()
task_type := zap.String("type", t.Type())
zap.L().Info("[%q] - 开始处理", task_type)
err := h.ProcessTask(ctx, t)
if err != nil {
zap.L().Error("[%q] - 处理失败 - %v", task_type, zap.Error(err))
return err
}
zap.L().Info("[%q] - 完成处理 | 耗时 %v", task_type, zap.Duration("duration", time.Since(start)))
return nil
})
}