github.com/haalcala/mattermost-server-change-repo@v0.0.0-20210713015153-16753fbeee5f/jobs/import_delete/scheduler.go (about) 1 // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. 2 // See LICENSE.txt for license information. 3 4 package import_delete 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 jobName = "ImportDelete" 15 schedFrequency = 24 * time.Hour 16 ) 17 18 type Scheduler struct { 19 app *app.App 20 } 21 22 func (i *ImportDeleteInterfaceImpl) MakeScheduler() model.Scheduler { 23 return &Scheduler{i.app} 24 } 25 26 func (scheduler *Scheduler) Name() string { 27 return jobName + "Scheduler" 28 } 29 30 func (scheduler *Scheduler) JobType() string { 31 return model.JOB_TYPE_IMPORT_DELETE 32 } 33 34 func (scheduler *Scheduler) Enabled(cfg *model.Config) bool { 35 return *cfg.ImportSettings.Directory != "" && *cfg.ImportSettings.RetentionDays > 0 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(schedFrequency) 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_IMPORT_DELETE, data) 47 if err != nil { 48 return nil, err 49 } 50 return job, nil 51 }