github.com/adacta-ru/mattermost-server/v5@v5.31.1/jobs/expirynotify/scheduler.go (about) 1 // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. 2 // See LICENSE.txt for license information. 3 4 package expirynotify 5 6 import ( 7 "time" 8 9 "github.com/adacta-ru/mattermost-server/v5/app" 10 "github.com/adacta-ru/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 *ExpiryNotifyJobInterfaceImpl) 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_EXPIRY_NOTIFY 31 } 32 33 func (scheduler *Scheduler) Enabled(cfg *model.Config) bool { 34 // Only enabled when ExtendSessionLengthWithActivity is enabled. 35 return *cfg.ServiceSettings.ExtendSessionLengthWithActivity 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_EXPIRY_NOTIFY, data) 47 if err != nil { 48 return nil, err 49 } 50 return job, nil 51 }