Этот коммит содержится в:
Yusuke Nemoto
2019-02-06 16:25:07 +09:00
коммит произвёл Hanzei
родитель ac68236b88
Коммит 06f384df6d
7 изменённых файлов: 28 добавлений и 2 удалений

Просмотреть файл

@@ -90,6 +90,9 @@ func (s *Server) initJobs() {
if jobsMigrationsInterface != nil { if jobsMigrationsInterface != nil {
s.Jobs.Migrations = jobsMigrationsInterface(s.FakeApp()) s.Jobs.Migrations = jobsMigrationsInterface(s.FakeApp())
} }
if jobsPluginsInterface != nil {
s.Jobs.Plugins = jobsPluginsInterface(s.FakeApp())
}
s.Jobs.Workers = s.Jobs.InitWorkers() s.Jobs.Workers = s.Jobs.InitWorkers()
s.Jobs.Schedulers = s.Jobs.InitSchedulers() s.Jobs.Schedulers = s.Jobs.InitSchedulers()
} }

Просмотреть файл

@@ -77,6 +77,12 @@ func RegisterJobsMigrationsJobInterface(f func(*App) tjobs.MigrationsJobInterfac
jobsMigrationsInterface = f jobsMigrationsInterface = f
} }
var jobsPluginsInterface func(*App) tjobs.PluginsJobInterface
func RegisterJobsPluginsJobInterface(f func(*App) tjobs.PluginsJobInterface) {
jobsPluginsInterface = f
}
var ldapInterface func(*App) einterfaces.LdapInterface var ldapInterface func(*App) einterfaces.LdapInterface
func RegisterLdapInterface(f func(*App) einterfaces.LdapInterface) { func RegisterLdapInterface(f func(*App) einterfaces.LdapInterface) {

Просмотреть файл

@@ -7,4 +7,5 @@ package imports
import ( import (
_ "github.com/mattermost/mattermost-server/migrations" _ "github.com/mattermost/mattermost-server/migrations"
_ "github.com/mattermost/mattermost-server/plugin/scheduler"
) )

Просмотреть файл

@@ -114,6 +114,13 @@ func (watcher *Watcher) PollAndNotify() {
default: default:
} }
} }
} else if job.Type == model.JOB_TYPE_PLUGINS {
if watcher.workers.Plugins != nil {
select {
case watcher.workers.Plugins.JobChannel() <- *job:
default:
}
}
} }
} }
} }

Просмотреть файл

@@ -58,7 +58,7 @@ func (srv *JobServer) InitWorkers() *Workers {
} }
if pluginsInterface := srv.Plugins; pluginsInterface != nil { if pluginsInterface := srv.Plugins; pluginsInterface != nil {
workers.Migrations = pluginsInterface.MakeWorker() workers.Plugins = pluginsInterface.MakeWorker()
} }
return workers return workers
@@ -92,6 +92,10 @@ func (workers *Workers) Start() *Workers {
go workers.Migrations.Run() go workers.Migrations.Run()
} }
if workers.Plugins != nil {
go workers.Plugins.Run()
}
go workers.Watcher.Start() go workers.Watcher.Start()
}) })
@@ -173,6 +177,10 @@ func (workers *Workers) Stop() *Workers {
workers.Migrations.Stop() workers.Migrations.Stop()
} }
if workers.Plugins != nil {
workers.Plugins.Stop()
}
mlog.Info("Stopped workers") mlog.Info("Stopped workers")
return workers return workers

Просмотреть файл

@@ -55,6 +55,7 @@ func (j *Job) IsValid() *AppError {
case JOB_TYPE_LDAP_SYNC: case JOB_TYPE_LDAP_SYNC:
case JOB_TYPE_MESSAGE_EXPORT: case JOB_TYPE_MESSAGE_EXPORT:
case JOB_TYPE_MIGRATIONS: case JOB_TYPE_MIGRATIONS:
case JOB_TYPE_PLUGINS:
default: default:
return NewAppError("Job.IsValid", "model.job.is_valid.type.app_error", nil, "id="+j.Id, http.StatusBadRequest) return NewAppError("Job.IsValid", "model.job.is_valid.type.app_error", nil, "id="+j.Id, http.StatusBadRequest)
} }

Просмотреть файл

@@ -13,7 +13,7 @@ type PluginsJobInterfaceImpl struct {
} }
func init() { func init() {
app.RegisterJobsMigrationsJobInterface(func(a *app.App) tjobs.MigrationsJobInterface { app.RegisterJobsPluginsJobInterface(func(a *app.App) tjobs.PluginsJobInterface {
return &PluginsJobInterfaceImpl{a} return &PluginsJobInterfaceImpl{a}
}) })
} }