github.com/spreadshirt/mattermost-server@v5.3.2-0.20180927191755-a257d501df3d+incompatible/jobs/server.go (about) 1 // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. 2 // See License.txt for license information. 3 4 package jobs 5 6 import ( 7 ejobs "github.com/mattermost/mattermost-server/einterfaces/jobs" 8 tjobs "github.com/mattermost/mattermost-server/jobs/interfaces" 9 "github.com/mattermost/mattermost-server/model" 10 "github.com/mattermost/mattermost-server/services/configservice" 11 "github.com/mattermost/mattermost-server/store" 12 ) 13 14 type JobServer struct { 15 ConfigService configservice.ConfigService 16 Store store.Store 17 Workers *Workers 18 Schedulers *Schedulers 19 20 DataRetentionJob ejobs.DataRetentionJobInterface 21 MessageExportJob ejobs.MessageExportJobInterface 22 ElasticsearchAggregator ejobs.ElasticsearchAggregatorInterface 23 ElasticsearchIndexer ejobs.ElasticsearchIndexerInterface 24 LdapSync ejobs.LdapSyncInterface 25 Migrations tjobs.MigrationsJobInterface 26 } 27 28 func NewJobServer(configService configservice.ConfigService, store store.Store) *JobServer { 29 return &JobServer{ 30 ConfigService: configService, 31 Store: store, 32 } 33 } 34 35 func (srv *JobServer) Config() *model.Config { 36 return srv.ConfigService.Config() 37 } 38 39 func (srv *JobServer) StartWorkers() { 40 srv.Workers = srv.Workers.Start() 41 } 42 43 func (srv *JobServer) StartSchedulers() { 44 srv.Schedulers = srv.Schedulers.Start() 45 } 46 47 func (srv *JobServer) StopWorkers() { 48 if srv.Workers != nil { 49 srv.Workers.Stop() 50 } 51 } 52 53 func (srv *JobServer) StopSchedulers() { 54 if srv.Schedulers != nil { 55 srv.Schedulers.Stop() 56 } 57 }