diff options
Diffstat (limited to 'jobs')
-rw-r--r-- | jobs/interfaces/plugins_interface.go | 11 | ||||
-rw-r--r-- | jobs/schedulers.go | 4 | ||||
-rw-r--r-- | jobs/server.go | 1 | ||||
-rw-r--r-- | jobs/workers.go | 5 |
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 } |