summaryrefslogtreecommitdiffstats
path: root/jobs
diff options
context:
space:
mode:
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
}