summaryrefslogtreecommitdiffstats
path: root/jobs
diff options
context:
space:
mode:
authorDaniel Schalla <daniel@schalla.me>2018-10-10 19:55:12 +0200
committerChristopher Speller <crspeller@gmail.com>2018-10-10 10:55:12 -0700
commitc36e85c9126b921cf00e578ac70c1f1ee0153abd (patch)
tree86bfea62ec6a1ce0edc548db4a87851c41e30b88 /jobs
parentbd04d7f75698c7b68434199208dc469021b823c2 (diff)
downloadchat-c36e85c9126b921cf00e578ac70c1f1ee0153abd.tar.gz
chat-c36e85c9126b921cf00e578ac70c1f1ee0153abd.tar.bz2
chat-c36e85c9126b921cf00e578ac70c1f1ee0153abd.zip
DeleteAll for KV (#9431)
Expire K/V Values Regenerate Code pathfix Update Expiry on Update Check for Exit Signal gofmt Rewrote Go Routine Remove tempoarily cleanup loop fix expiretime TEST: Expired Watchdog as GoRoutine Check if Srv is nil Use Scheduler/Worker for Expired Key CleanUp add license fix scheduler job type; DoJob Restructuring Remove unused imports and constants move db migration from 5.4 to 5.5
Diffstat (limited to 'jobs')
-rw-r--r--jobs/interfaces/plugins_interface.go11
-rw-r--r--jobs/schedulers.go4
-rw-r--r--jobs/server.go1
-rw-r--r--jobs/workers.go5
4 files changed, 21 insertions, 0 deletions
diff --git a/jobs/interfaces/plugins_interface.go b/jobs/interfaces/plugins_interface.go
new file mode 100644
index 000000000..4d67129af
--- /dev/null
+++ b/jobs/interfaces/plugins_interface.go
@@ -0,0 +1,11 @@
+// Copyright (c) 2018-present Mattermost, Inc. All Rights Reserved.
+// See License.txt for license information.
+
+package interfaces
+
+import "github.com/mattermost/mattermost-server/model"
+
+type PluginsJobInterface interface {
+ MakeWorker() model.Worker
+ MakeScheduler() model.Scheduler
+}
diff --git a/jobs/schedulers.go b/jobs/schedulers.go
index 37a64bc22..b0cb92fc5 100644
--- a/jobs/schedulers.go
+++ b/jobs/schedulers.go
@@ -56,6 +56,10 @@ func (srv *JobServer) InitSchedulers() *Schedulers {
schedulers.schedulers = append(schedulers.schedulers, migrationsInterface.MakeScheduler())
}
+ if pluginsInterface := srv.Plugins; pluginsInterface != nil {
+ schedulers.schedulers = append(schedulers.schedulers, pluginsInterface.MakeScheduler())
+ }
+
schedulers.nextRunTimes = make([]*time.Time, len(schedulers.schedulers))
return schedulers
}
diff --git a/jobs/server.go b/jobs/server.go
index 80c48a165..06897e43a 100644
--- a/jobs/server.go
+++ b/jobs/server.go
@@ -23,6 +23,7 @@ type JobServer struct {
ElasticsearchIndexer ejobs.ElasticsearchIndexerInterface
LdapSync ejobs.LdapSyncInterface
Migrations tjobs.MigrationsJobInterface
+ Plugins tjobs.PluginsJobInterface
}
func NewJobServer(configService configservice.ConfigService, store store.Store) *JobServer {
diff --git a/jobs/workers.go b/jobs/workers.go
index ad457ed2a..f06809945 100644
--- a/jobs/workers.go
+++ b/jobs/workers.go
@@ -22,6 +22,7 @@ type Workers struct {
ElasticsearchAggregation model.Worker
LdapSync model.Worker
Migrations model.Worker
+ Plugins model.Worker
listenerId string
}
@@ -56,6 +57,10 @@ func (srv *JobServer) InitWorkers() *Workers {
workers.Migrations = migrationsInterface.MakeWorker()
}
+ if pluginsInterface := srv.Plugins; pluginsInterface != nil {
+ workers.Migrations = pluginsInterface.MakeWorker()
+ }
+
return workers
}