|
@@ -109,7 +109,7 @@ func (w *Worker) ReloadMirrorConfig(newMirrors []mirrorConfig) {
|
|
job.SetState(statePaused)
|
|
job.SetState(statePaused)
|
|
go job.Run(w.managerChan, w.semaphore)
|
|
go job.Run(w.managerChan, w.semaphore)
|
|
} else {
|
|
} else {
|
|
- job.SetState(stateReady)
|
|
|
|
|
|
+ job.SetState(stateNone)
|
|
go job.Run(w.managerChan, w.semaphore)
|
|
go job.Run(w.managerChan, w.semaphore)
|
|
w.schedule.AddJob(time.Now(), job)
|
|
w.schedule.AddJob(time.Now(), job)
|
|
}
|
|
}
|
|
@@ -125,7 +125,7 @@ func (w *Worker) ReloadMirrorConfig(newMirrors []mirrorConfig) {
|
|
job := newMirrorJob(provider)
|
|
job := newMirrorJob(provider)
|
|
w.jobs[provider.Name()] = job
|
|
w.jobs[provider.Name()] = job
|
|
|
|
|
|
- job.SetState(stateReady)
|
|
|
|
|
|
+ job.SetState(stateNone)
|
|
go job.Run(w.managerChan, w.semaphore)
|
|
go job.Run(w.managerChan, w.semaphore)
|
|
w.schedule.AddJob(time.Now(), job)
|
|
w.schedule.AddJob(time.Now(), job)
|
|
logger.Noticef("New job %s", job.Name())
|
|
logger.Noticef("New job %s", job.Name())
|
|
@@ -166,6 +166,9 @@ func (w *Worker) makeHTTPServer() {
|
|
}
|
|
}
|
|
|
|
|
|
logger.Noticef("Received command: %v", cmd)
|
|
logger.Noticef("Received command: %v", cmd)
|
|
|
|
+ // No matter what command, the existing job
|
|
|
|
+ // schedule should be flushed
|
|
|
|
+ w.schedule.Remove(job.Name())
|
|
// if job disabled, start them first
|
|
// if job disabled, start them first
|
|
switch cmd.Cmd {
|
|
switch cmd.Cmd {
|
|
case CmdStart, CmdRestart:
|
|
case CmdStart, CmdRestart:
|
|
@@ -181,14 +184,13 @@ func (w *Worker) makeHTTPServer() {
|
|
case CmdStop:
|
|
case CmdStop:
|
|
// if job is disabled, no goroutine would be there
|
|
// if job is disabled, no goroutine would be there
|
|
// receiving this signal
|
|
// receiving this signal
|
|
- w.schedule.Remove(job.Name())
|
|
|
|
if job.State() != stateDisabled {
|
|
if job.State() != stateDisabled {
|
|
job.ctrlChan <- jobStop
|
|
job.ctrlChan <- jobStop
|
|
}
|
|
}
|
|
case CmdDisable:
|
|
case CmdDisable:
|
|
w.disableJob(job)
|
|
w.disableJob(job)
|
|
case CmdPing:
|
|
case CmdPing:
|
|
- job.ctrlChan <- jobStart
|
|
|
|
|
|
+ // empty
|
|
default:
|
|
default:
|
|
c.JSON(http.StatusNotAcceptable, gin.H{"msg": "Invalid Command"})
|
|
c.JSON(http.StatusNotAcceptable, gin.H{"msg": "Invalid Command"})
|
|
return
|
|
return
|
|
@@ -250,7 +252,7 @@ func (w *Worker) runSchedule() {
|
|
go job.Run(w.managerChan, w.semaphore)
|
|
go job.Run(w.managerChan, w.semaphore)
|
|
continue
|
|
continue
|
|
default:
|
|
default:
|
|
- job.SetState(stateReady)
|
|
|
|
|
|
+ job.SetState(stateNone)
|
|
go job.Run(w.managerChan, w.semaphore)
|
|
go job.Run(w.managerChan, w.semaphore)
|
|
stime := m.LastUpdate.Add(job.provider.Interval())
|
|
stime := m.LastUpdate.Add(job.provider.Interval())
|
|
logger.Debugf("Scheduling job %s @%s", job.Name(), stime.Format("2006-01-02 15:04:05"))
|
|
logger.Debugf("Scheduling job %s @%s", job.Name(), stime.Format("2006-01-02 15:04:05"))
|
|
@@ -263,7 +265,7 @@ func (w *Worker) runSchedule() {
|
|
// manager's mirror list
|
|
// manager's mirror list
|
|
for name := range unset {
|
|
for name := range unset {
|
|
job := w.jobs[name]
|
|
job := w.jobs[name]
|
|
- job.SetState(stateReady)
|
|
|
|
|
|
+ job.SetState(stateNone)
|
|
go job.Run(w.managerChan, w.semaphore)
|
|
go job.Run(w.managerChan, w.semaphore)
|
|
w.schedule.AddJob(time.Now(), job)
|
|
w.schedule.AddJob(time.Now(), job)
|
|
}
|
|
}
|