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  }