summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristopher Speller <crspeller@gmail.com>2017-08-01 05:53:42 -0700
committerHarrison Healey <harrisonmhealey@gmail.com>2017-08-01 08:53:42 -0400
commit0331409488083a58d66fdf58eb22cbaa924237f6 (patch)
tree781083667075eecbe6c40b7698a7ec5ad8d1216b
parent88f398ffddbcbb58265d085c09cb72008be3f3d5 (diff)
downloadchat-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--Makefile17
-rw-r--r--cmd/platform/jobserver.go (renamed from jobs/jobserver/jobserver.go)29
-rw-r--r--cmd/platform/mattermost.go2
-rw-r--r--cmd/platform/server.go8
-rw-r--r--jobs/server.go8
5 files changed, 33 insertions, 31 deletions
diff --git a/Makefile b/Makefile
index 194ab3eeb..026a76582 100644
--- a/Makefile
+++ b/Makefile
@@ -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() {