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