diff options
author | Daniel Schalla <daniel@schalla.me> | 2018-10-10 19:55:12 +0200 |
---|---|---|
committer | Christopher Speller <crspeller@gmail.com> | 2018-10-10 10:55:12 -0700 |
commit | c36e85c9126b921cf00e578ac70c1f1ee0153abd (patch) | |
tree | 86bfea62ec6a1ce0edc548db4a87851c41e30b88 /plugin/scheduler/scheduler.go | |
parent | bd04d7f75698c7b68434199208dc469021b823c2 (diff) | |
download | chat-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 'plugin/scheduler/scheduler.go')
-rw-r--r-- | plugin/scheduler/scheduler.go | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/plugin/scheduler/scheduler.go b/plugin/scheduler/scheduler.go new file mode 100644 index 000000000..7214d6cfd --- /dev/null +++ b/plugin/scheduler/scheduler.go @@ -0,0 +1,47 @@ +// Copyright (c) 2018-present Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +package scheduler + +import ( + "time" + + "github.com/mattermost/mattermost-server/app" + "github.com/mattermost/mattermost-server/mlog" + "github.com/mattermost/mattermost-server/model" +) + +type Scheduler struct { + App *app.App +} + +func (m *PluginsJobInterfaceImpl) MakeScheduler() model.Scheduler { + return &Scheduler{m.App} +} + +func (scheduler *Scheduler) Name() string { + return "PluginsScheduler" +} + +func (scheduler *Scheduler) JobType() string { + return model.JOB_TYPE_PLUGINS +} + +func (scheduler *Scheduler) Enabled(cfg *model.Config) bool { + return true +} + +func (scheduler *Scheduler) NextScheduleTime(cfg *model.Config, now time.Time, pendingJobs bool, lastSuccessfulJob *model.Job) *time.Time { + nextTime := time.Now().Add(60 * time.Second) + return &nextTime +} + +func (scheduler *Scheduler) ScheduleJob(cfg *model.Config, pendingJobs bool, lastSuccessfulJob *model.Job) (*model.Job, *model.AppError) { + mlog.Debug("Scheduling Job", mlog.String("scheduler", scheduler.Name())) + + if job, err := scheduler.App.Jobs.CreateJob(model.JOB_TYPE_PLUGINS, nil); err != nil { + return nil, err + } else { + return job, nil + } +} |