github.com/ashishbhate/mattermost-server@v5.11.1+incompatible/plugin/scheduler/scheduler.go (about) 1 // Copyright (c) 2018-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/app" 10 "github.com/mattermost/mattermost-server/mlog" 11 "github.com/mattermost/mattermost-server/model" 12 ) 13 14 type Scheduler struct { 15 App *app.App 16 } 17 18 func (m *PluginsJobInterfaceImpl) MakeScheduler() model.Scheduler { 19 return &Scheduler{m.App} 20 } 21 22 func (scheduler *Scheduler) Name() string { 23 return "PluginsScheduler" 24 } 25 26 func (scheduler *Scheduler) JobType() string { 27 return model.JOB_TYPE_PLUGINS 28 } 29 30 func (scheduler *Scheduler) Enabled(cfg *model.Config) bool { 31 return true 32 } 33 34 func (scheduler *Scheduler) NextScheduleTime(cfg *model.Config, now time.Time, pendingJobs bool, lastSuccessfulJob *model.Job) *time.Time { 35 nextTime := time.Now().Add(60 * time.Second) 36 return &nextTime 37 } 38 39 func (scheduler *Scheduler) ScheduleJob(cfg *model.Config, pendingJobs bool, lastSuccessfulJob *model.Job) (*model.Job, *model.AppError) { 40 mlog.Debug("Scheduling Job", mlog.String("scheduler", scheduler.Name())) 41 42 if job, err := scheduler.App.Srv.Jobs.CreateJob(model.JOB_TYPE_PLUGINS, nil); err != nil { 43 return nil, err 44 } else { 45 return job, nil 46 } 47 }