github.com/haalcala/mattermost-server-change-repo@v0.0.0-20210713015153-16753fbeee5f/jobs/server.go (about) 1 // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. 2 // See LICENSE.txt for license information. 3 4 package jobs 5 6 import ( 7 "github.com/mattermost/mattermost-server/v5/einterfaces" 8 ejobs "github.com/mattermost/mattermost-server/v5/einterfaces/jobs" 9 tjobs "github.com/mattermost/mattermost-server/v5/jobs/interfaces" 10 "github.com/mattermost/mattermost-server/v5/model" 11 "github.com/mattermost/mattermost-server/v5/services/configservice" 12 "github.com/mattermost/mattermost-server/v5/store" 13 ) 14 15 type JobServer struct { 16 ConfigService configservice.ConfigService 17 Store store.Store 18 metrics einterfaces.MetricsInterface 19 Workers *Workers 20 Schedulers *Schedulers 21 22 DataRetentionJob ejobs.DataRetentionJobInterface 23 MessageExportJob ejobs.MessageExportJobInterface 24 ElasticsearchAggregator ejobs.ElasticsearchAggregatorInterface 25 ElasticsearchIndexer tjobs.IndexerJobInterface 26 LdapSync ejobs.LdapSyncInterface 27 Migrations tjobs.MigrationsJobInterface 28 Plugins tjobs.PluginsJobInterface 29 BleveIndexer tjobs.IndexerJobInterface 30 ExpiryNotify tjobs.ExpiryNotifyJobInterface 31 ProductNotices tjobs.ProductNoticesJobInterface 32 ActiveUsers tjobs.ActiveUsersJobInterface 33 ImportProcess tjobs.ImportProcessInterface 34 ImportDelete tjobs.ImportDeleteInterface 35 ExportProcess tjobs.ExportProcessInterface 36 ExportDelete tjobs.ExportDeleteInterface 37 Cloud ejobs.CloudJobInterface 38 } 39 40 func NewJobServer(configService configservice.ConfigService, store store.Store, metrics einterfaces.MetricsInterface) *JobServer { 41 return &JobServer{ 42 ConfigService: configService, 43 Store: store, 44 metrics: metrics, 45 } 46 } 47 48 func (srv *JobServer) Config() *model.Config { 49 return srv.ConfigService.Config() 50 } 51 52 func (srv *JobServer) StartWorkers() { 53 srv.Workers = srv.Workers.Start() 54 } 55 56 func (srv *JobServer) StartSchedulers() { 57 srv.Schedulers = srv.Schedulers.Start() 58 } 59 60 func (srv *JobServer) StopWorkers() { 61 if srv.Workers != nil { 62 srv.Workers.Stop() 63 } 64 } 65 66 func (srv *JobServer) StopSchedulers() { 67 if srv.Schedulers != nil { 68 srv.Schedulers.Stop() 69 } 70 }