summaryrefslogtreecommitdiffstats
path: root/model
diff options
context:
space:
mode:
authorGeorge Goldberg <george@gberg.me>2017-09-28 17:11:13 +0100
committerCorey Hulen <corey@hulen.com>2017-09-28 09:11:13 -0700
commita06830b2f88a8d374c326a1191870cbc7cf7dac2 (patch)
tree4879ce49de061fba894fe01b54db701c639f0e94 /model
parentf263d2b9510fb557fe075dee5097cb32e2b1e5e2 (diff)
downloadchat-a06830b2f88a8d374c326a1191870cbc7cf7dac2.tar.gz
chat-a06830b2f88a8d374c326a1191870cbc7cf7dac2.tar.bz2
chat-a06830b2f88a8d374c326a1191870cbc7cf7dac2.zip
PLT-7644: Improve job scheduler architecture. (#7532)
Diffstat (limited to 'model')
-rw-r--r--model/config.go4
-rw-r--r--model/job.go8
2 files changed, 8 insertions, 4 deletions
diff --git a/model/config.go b/model/config.go
index 8b6aad0e5..6cf716372 100644
--- a/model/config.go
+++ b/model/config.go
@@ -1859,7 +1859,7 @@ func (o *Config) IsValid() *AppError {
return NewAppError("Config.IsValid", "model.config.is_valid.elastic_search.aggregate_posts_after_days.app_error", nil, "", http.StatusBadRequest)
}
- if _, err := time.Parse("03:04", *o.ElasticsearchSettings.PostsAggregatorJobStartTime); err != nil {
+ if _, err := time.Parse("15:04", *o.ElasticsearchSettings.PostsAggregatorJobStartTime); err != nil {
return NewAppError("Config.IsValid", "model.config.is_valid.elastic_search.posts_aggregator_job_start_time.app_error", nil, err.Error(), http.StatusBadRequest)
}
@@ -1871,7 +1871,7 @@ func (o *Config) IsValid() *AppError {
return NewAppError("Config.IsValid", "model.config.is_valid.data_retention.file_retention_days_too_low.app_error", nil, "", http.StatusBadRequest)
}
- if _, err := time.Parse("03:04", *o.DataRetentionSettings.DeletionJobStartTime); err != nil {
+ if _, err := time.Parse("15:04", *o.DataRetentionSettings.DeletionJobStartTime); err != nil {
return NewAppError("Config.IsValid", "model.config.is_valid.data_retention.deletion_job_start_time.app_error", nil, err.Error(), http.StatusBadRequest)
}
diff --git a/model/job.go b/model/job.go
index 85dfbec92..843d73fad 100644
--- a/model/job.go
+++ b/model/job.go
@@ -7,6 +7,7 @@ import (
"encoding/json"
"io"
"net/http"
+ "time"
)
const (
@@ -116,6 +117,9 @@ type Worker interface {
}
type Scheduler interface {
- Run()
- Stop()
+ Name() string
+ JobType() string
+ Enabled(cfg *Config) bool
+ NextScheduleTime(cfg *Config, now time.Time, pendingJobs bool, lastSuccessfulJob *Job) *time.Time
+ ScheduleJob(cfg *Config, pendingJobs bool, lastSuccessfulJob *Job) (*Job, *AppError)
}