summaryrefslogtreecommitdiffstats
path: root/jobs/testjob.go
diff options
context:
space:
mode:
Diffstat (limited to 'jobs/testjob.go')
-rw-r--r--jobs/testjob.go54
1 files changed, 54 insertions, 0 deletions
diff --git a/jobs/testjob.go b/jobs/testjob.go
new file mode 100644
index 000000000..59d5274e5
--- /dev/null
+++ b/jobs/testjob.go
@@ -0,0 +1,54 @@
+// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved.
+// See License.txt for license information.
+
+package jobs
+
+import (
+ "time"
+
+ l4g "github.com/alecthomas/log4go"
+ "github.com/mattermost/platform/store"
+)
+
+type TestJob struct {
+ store store.Store
+
+ name string
+ stop chan bool
+ stopped chan bool
+}
+
+func MakeTestJob(s store.Store, name string) *TestJob {
+ return &TestJob{
+ store: s,
+ name: name,
+ stop: make(chan bool, 1),
+ stopped: make(chan bool, 1),
+ }
+}
+
+func (job *TestJob) Run() {
+ l4g.Debug("Job %v: Started", job.name)
+
+ running := true
+ for running {
+ l4g.Debug("Job %v: Tick", job.name)
+
+ select {
+ case <-job.stop:
+ l4g.Debug("Job %v: Received stop signal", job.name)
+ running = false
+ case <-time.After(10 * time.Second):
+ continue
+ }
+ }
+
+ l4g.Debug("Job %v: Finished", job.name)
+ job.stopped <- true
+}
+
+func (job *TestJob) Stop() {
+ l4g.Debug("Job %v: Stopping", job.name)
+ job.stop <- true
+ <-job.stopped
+}