[MM-54132] Use annotated logger for log messages from jobs (#24275)
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
fcfcbd9909
Коммит
30b12f199b
@@ -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)
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user