[MM-54132] Use annotated logger for log messages from jobs (#24275)

Этот коммит содержится в:
Ben Schumacher
2023-09-07 08:50:22 +02:00
коммит произвёл GitHub
родитель fcfcbd9909
Коммит 30b12f199b
120 изменённых файлов: 1064 добавлений и 1111 удалений

Просмотреть файл

@@ -6,6 +6,8 @@ package model
import (
"net/http"
"time"
"github.com/mattermost/mattermost/server/public/shared/mlog"
)
const (
@@ -80,6 +82,8 @@ type Job struct {
Status string `json:"status"`
Progress int64 `json:"progress"`
Data StringMap `json:"data"`
Logger *mlog.Logger `json:"-"`
}
func (j *Job) Auditable() map[string]interface{} {
@@ -120,15 +124,19 @@ func (j *Job) IsValid() *AppError {
return nil
}
// InitLogger attaches an annotated logger to a Job.
// It should always be called after creating a new Job to ensure `Job.Logger` it set.
func (j *Job) InitLogger(logger mlog.LoggerIFace) {
j.Logger = logger.With(
mlog.String("job_id", j.Id),
mlog.String("job_type", j.Type),
mlog.String("create_at", time.UnixMilli(j.CreateAt).String()),
)
}
type Worker interface {
Run()
Stop()
JobChannel() chan<- Job
IsEnabled(cfg *Config) bool
}
type Scheduler interface {
Enabled(cfg *Config) bool
NextScheduleTime(cfg *Config, now time.Time, pendingJobs bool, lastSuccessfulJob *Job) *time.Time
ScheduleJob(cfg *Config, pendingJobs bool, lastSuccessfulJob *Job) (*Job, *AppError)
}