github.com/haalcala/mattermost-server-change-repo@v0.0.0-20210713015153-16753fbeee5f/jobs/active_users/scheduler.go (about) 1 // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. 2 // See LICENSE.txt for license information. 3 4 package active_users 5 6 import ( 7 "time" 8 9 "github.com/mattermost/mattermost-server/v5/app" 10 "github.com/mattermost/mattermost-server/v5/model" 11 ) 12 13 const ( 14 SchedFreqMinutes = 10 15 ) 16 17 type Scheduler struct { 18 App *app.App 19 } 20 21 func (m *ActiveUsersJobInterfaceImpl) MakeScheduler() model.Scheduler { 22 return &Scheduler{m.App} 23 } 24 25 func (scheduler *Scheduler) Name() string { 26 return JobName + "Scheduler" 27 } 28 29 func (scheduler *Scheduler) JobType() string { 30 return model.JOB_TYPE_ACTIVE_USERS 31 } 32 33 func (scheduler *Scheduler) Enabled(cfg *model.Config) bool { 34 // Only enabled when Metrics are enabled. 35 return *cfg.MetricsSettings.Enable 36 } 37 38 func (scheduler *Scheduler) NextScheduleTime(cfg *model.Config, now time.Time, pendingJobs bool, lastSuccessfulJob *model.Job) *time.Time { 39 nextTime := time.Now().Add(SchedFreqMinutes * time.Minute) 40 return &nextTime 41 } 42 43 func (scheduler *Scheduler) ScheduleJob(cfg *model.Config, pendingJobs bool, lastSuccessfulJob *model.Job) (*model.Job, *model.AppError) { 44 data := map[string]string{} 45 46 job, err := scheduler.App.Srv().Jobs.CreateJob(model.JOB_TYPE_ACTIVE_USERS, data) 47 if err != nil { 48 return nil, err 49 } 50 return job, nil 51 }