hunk.code_window: 		for _, js := range jobStatuses {
   			j := model.Job{
   				Type: js.Type,
   				Id: js.Id,
   			}
   			if js.Type == model.JOB_TYPE_DATA_RETENTION {
  
hunk.labels: keep keep keep replace keep keep keep
hunk.after_edit: 				Id:   js.Id,
  
hunk.file_path: jobs/jobs_watcher.go
hunk.type: replace
file: // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved.
  // See License.txt for license information.
  
  package jobs
  
  import (
  	"time"
  
  	l4g "github.com/alecthomas/log4go"
  )
  
  type TestScheduler struct {
  	name    string
  	jobType string
  	stop    chan bool
  	stopped chan bool
  }
  
  func MakeTestScheduler(name string, jobType string) *TestScheduler {
  	return &TestScheduler{
  		name:    name,
  		jobType: jobType,
  		stop:    make(chan bool, 1),
  		stopped: make(chan bool, 1),
  	}
  }
  
  func (scheduler *TestScheduler) Run() {
  	l4g.Debug("Scheduler %v: Started", scheduler.name)
  
  	defer func(){
  		l4g.Debug("Scheduler %v: Finished", scheduler.name)
  		scheduler.stopped <- true
  	}()
  
  	for {
  		select {
  		case <-scheduler.stop:
  			l4g.Debug("Scheduler %v: Received stop signal", scheduler.name)
  			return
  		case <-time.After(86400 * time.Second):
  			l4g.Debug("Scheduler: %v: Scheduling new job", scheduler.name)
  			scheduler.AddJob()
  		}
  	}
  }
  
  func (scheduler *TestScheduler) AddJob() {
  	if _, err := CreateJob(scheduler.jobType, nil); err != nil {
  		l4g.Error("Scheduler %v: failed to create job: %v", scheduler.name, err)
  	}
  }
  
  func (scheduler *TestScheduler) Stop() {
  	l4g.Debug("Scheduler %v: Stopping", scheduler.name)
  	scheduler.stop <- true
  	<-scheduler.stopped
  }
  