diff options
author | Christopher Speller <crspeller@gmail.com> | 2017-08-01 05:53:42 -0700 |
---|---|---|
committer | Harrison Healey <harrisonmhealey@gmail.com> | 2017-08-01 08:53:42 -0400 |
commit | 0331409488083a58d66fdf58eb22cbaa924237f6 (patch) | |
tree | 781083667075eecbe6c40b7698a7ec5ad8d1216b | |
parent | 88f398ffddbcbb58265d085c09cb72008be3f3d5 (diff) | |
download | chat-0331409488083a58d66fdf58eb22cbaa924237f6.tar.gz chat-0331409488083a58d66fdf58eb22cbaa924237f6.tar.bz2 chat-0331409488083a58d66fdf58eb22cbaa924237f6.zip |
Add jobserver command to platform binary (#7067)
* Add jobserver command to platform binary
* Fixing jobserver config. Adding jobserver flags.
* Fixing govet in makefile
-rw-r--r-- | Makefile | 17 | ||||
-rw-r--r-- | cmd/platform/jobserver.go (renamed from jobs/jobserver/jobserver.go) | 29 | ||||
-rw-r--r-- | cmd/platform/mattermost.go | 2 | ||||
-rw-r--r-- | cmd/platform/server.go | 8 | ||||
-rw-r--r-- | jobs/server.go | 8 |
5 files changed, 33 insertions, 31 deletions
@@ -365,20 +365,6 @@ build-client: cd $(BUILD_WEBAPP_DIR) && $(MAKE) build -build-job-server: build-job-server-linux build-job-server-mac build-job-server-windows - -build-job-server-linux: .prebuild prepare-enterprise - @echo Build mattermost job server for Linux amd64 - env GOOS=linux GOARCH=amd64 $(GO) build $(GOFLAGS) $(GO_LINKER_FLAGS) ./jobs/jobserver - -build-job-server-osx: .prebuild prepare-enterprise - @echo Build mattermost job server for OSX amd64 - env GOOS=darwin GOARCH=amd64 $(GO) build $(GOFLAGS) $(GO_LINKER_FLAGS) ./jobs/jobserver - -build-job-server-windows: .prebuild prepare-enterprise - @echo Build mattermost job server for Windows amd64 - env GOOS=windows GOARCH=amd64 $(GO) build $(GOFLAGS) $(GO_LINKER_FLAGS) ./jobs/jobserver - package: build build-client @ echo Packaging mattermost @@ -515,7 +501,7 @@ restart-client: | stop-client run-client run-job-server: @echo Running job server for development - $(GO) run $(GOFLAGS) $(GO_LINKER_FLAGS) ./jobs/jobserver/jobserver.go + $(GO) run $(GOFLAGS) $(GO_LINKER_FLAGS) ./cmd/platform/*.go jobserver --disableconfigwatch & clean: stop-docker @echo Cleaning @@ -556,7 +542,6 @@ govet: $(GO) vet $(GOFLAGS) ./cmd/platform || exit 1 $(GO) vet $(GOFLAGS) ./einterfaces || exit 1 $(GO) vet $(GOFLAGS) ./jobs || exit 1 - $(GO) vet $(GOFLAGS) ./jobs/jobserver || exit 1 $(GO) vet $(GOFLAGS) ./manualtesting || exit 1 $(GO) vet $(GOFLAGS) ./model || exit 1 $(GO) vet $(GOFLAGS) ./model/gitlab || exit 1 diff --git a/jobs/jobserver/jobserver.go b/cmd/platform/jobserver.go index aabe5d3b2..73fca9961 100644 --- a/jobs/jobserver/jobserver.go +++ b/cmd/platform/jobserver.go @@ -1,6 +1,5 @@ // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. - package main import ( @@ -12,11 +11,25 @@ import ( "github.com/mattermost/platform/jobs" "github.com/mattermost/platform/store" "github.com/mattermost/platform/utils" - - _ "github.com/mattermost/platform/imports" + "github.com/spf13/cobra" ) -func main() { +var jobserverCmd = &cobra.Command{ + Use: "jobserver", + Short: "Start the Mattermost job server", + Run: jobserverCmdF, +} + +func init() { + jobserverCmd.Flags().Bool("nojobs", false, "Do not run jobs on this jobserver.") + jobserverCmd.Flags().Bool("noschedule", false, "Do not schedule jobs from this jobserver.") +} + +func jobserverCmdF(cmd *cobra.Command, args []string) { + // Options + noJobs, _ := cmd.Flags().GetBool("nojobs") + noSchedule, _ := cmd.Flags().GetBool("noschedule") + // Initialize utils.InitAndLoadConfig("config.json") defer l4g.Close() @@ -28,8 +41,12 @@ func main() { // Run jobs l4g.Info("Starting Mattermost job server") - jobs.Srv.StartWorkers() - jobs.Srv.StartSchedulers() + if !noJobs { + jobs.Srv.StartWorkers() + } + if !noSchedule { + jobs.Srv.StartSchedulers() + } var signalChan chan os.Signal = make(chan os.Signal) signal.Notify(signalChan, os.Interrupt, syscall.SIGINT, syscall.SIGTERM) diff --git a/cmd/platform/mattermost.go b/cmd/platform/mattermost.go index 64e7974bf..4b564e1ab 100644 --- a/cmd/platform/mattermost.go +++ b/cmd/platform/mattermost.go @@ -41,7 +41,7 @@ func init() { resetCmd.Flags().Bool("confirm", false, "Confirm you really want to delete everything and a DB backup has been performed.") - rootCmd.AddCommand(serverCmd, versionCmd, userCmd, teamCmd, licenseCmd, importCmd, resetCmd, channelCmd, rolesCmd, testCmd, ldapCmd, configCmd) + rootCmd.AddCommand(serverCmd, versionCmd, userCmd, teamCmd, licenseCmd, importCmd, resetCmd, channelCmd, rolesCmd, testCmd, ldapCmd, configCmd, jobserverCmd) } var rootCmd = &cobra.Command{ diff --git a/cmd/platform/server.go b/cmd/platform/server.go index 3413472da..6186cbd86 100644 --- a/cmd/platform/server.go +++ b/cmd/platform/server.go @@ -127,8 +127,12 @@ func runServer(configFileLocation string) { } jobs.Srv.Store = app.Srv.Store - jobs.Srv.StartWorkers() - jobs.Srv.StartSchedulers() + if *utils.Cfg.JobSettings.RunJobs { + jobs.Srv.StartWorkers() + } + if *utils.Cfg.JobSettings.RunScheduler { + jobs.Srv.StartSchedulers() + } // wait for kill signal before attempting to gracefully shutdown // the running service diff --git a/jobs/server.go b/jobs/server.go index 7920cb2d5..58412a40e 100644 --- a/jobs/server.go +++ b/jobs/server.go @@ -49,15 +49,11 @@ func (server *JobServer) LoadLicense() { } func (server *JobServer) StartWorkers() { - if *utils.Cfg.JobSettings.RunJobs { - Srv.Workers = InitWorkers().Start() - } + Srv.Workers = InitWorkers().Start() } func (server *JobServer) StartSchedulers() { - if *utils.Cfg.JobSettings.RunJobs { - Srv.Schedulers = InitSchedulers().Start() - } + Srv.Schedulers = InitSchedulers().Start() } func (server *JobServer) StopWorkers() { |