github.com/spline-fu/mattermost-server@v4.10.10+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  	"github.com/mattermost/mattermost-server/model"
     9  	"github.com/mattermost/mattermost-server/store"
    10  )
    11  
    12  type ConfigService interface {
    13  	Config() *model.Config
    14  	AddConfigListener(func(old, current *model.Config)) string
    15  	RemoveConfigListener(string)
    16  }
    17  
    18  type StaticConfigService struct {
    19  	Cfg *model.Config
    20  }
    21  
    22  func (s StaticConfigService) Config() *model.Config                                   { return s.Cfg }
    23  func (StaticConfigService) AddConfigListener(func(old, current *model.Config)) string { return "" }
    24  func (StaticConfigService) RemoveConfigListener(string)                               {}
    25  
    26  type JobServer struct {
    27  	ConfigService ConfigService
    28  	Store         store.Store
    29  	Workers       *Workers
    30  	Schedulers    *Schedulers
    31  
    32  	DataRetentionJob        ejobs.DataRetentionJobInterface
    33  	MessageExportJob        ejobs.MessageExportJobInterface
    34  	ElasticsearchAggregator ejobs.ElasticsearchAggregatorInterface
    35  	ElasticsearchIndexer    ejobs.ElasticsearchIndexerInterface
    36  	LdapSync                ejobs.LdapSyncInterface
    37  }
    38  
    39  func NewJobServer(configService ConfigService, store store.Store) *JobServer {
    40  	return &JobServer{
    41  		ConfigService: configService,
    42  		Store:         store,
    43  	}
    44  }
    45  
    46  func (srv *JobServer) Config() *model.Config {
    47  	return srv.ConfigService.Config()
    48  }
    49  
    50  func (srv *JobServer) StartWorkers() {
    51  	srv.Workers = srv.InitWorkers().Start()
    52  }
    53  
    54  func (srv *JobServer) StartSchedulers() {
    55  	srv.Schedulers = srv.InitSchedulers().Start()
    56  }
    57  
    58  func (srv *JobServer) StopWorkers() {
    59  	if srv.Workers != nil {
    60  		srv.Workers.Stop()
    61  	}
    62  }
    63  
    64  func (srv *JobServer) StopSchedulers() {
    65  	if srv.Schedulers != nil {
    66  		srv.Schedulers.Stop()
    67  	}
    68  }