comparison pkg/scheduler/scheduler.go @ 1590:2fdd8e57542d

Added DELETE /imports/scheduler/{id:[0-9]+} to delete a schedule from the scheduler.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Fri, 14 Dec 2018 12:34:12 +0100
parents 62171cd9a42b
children f39957ea08aa
comparison
equal deleted inserted replaced
1589:e0bd82f6ee14 1590:2fdd8e57542d
126 // an optional configuration id. 126 // an optional configuration id.
127 func UnbindAction(name, user string, cfgID *int64) { 127 func UnbindAction(name, user string, cfgID *int64) {
128 global.unbindAction(name, user, cfgID) 128 global.unbindAction(name, user, cfgID)
129 } 129 }
130 130
131 // UnbindByID unbinds all schedules with a given id.
132 func UnbindByID(cfgID int64) {
133 global.unbindByID(cfgID)
134 }
135
131 // UnbindUser unbinds all schedules for a given user. 136 // UnbindUser unbinds all schedules for a given user.
132 func UnbindUser(user string) { 137 func UnbindUser(user string) {
133 global.unbindUser(user) 138 global.unbindUser(user)
134 } 139 }
135 140
173 s.cr.Stop() 178 s.cr.Stop()
174 s.cr = cron.New() 179 s.cr = cron.New()
175 for _, entry := range entries { 180 for _, entry := range entries {
176 ua := entry.Job.(*userAction) 181 ua := entry.Job.(*userAction)
177 if ua.user != user { 182 if ua.user != user {
183 s.cr.Schedule(entry.Schedule, entry.Job)
184 }
185 }
186 s.cr.Start()
187 }
188
189 func (s *scheduler) unbindByID(cfgID int64) {
190 s.mu.Lock()
191 defer s.mu.Unlock()
192
193 entries := s.cr.Entries()
194
195 var found bool
196 for _, entry := range entries {
197 ua := entry.Job.(*userAction)
198 if ua.cfgID != nil && *ua.cfgID == cfgID {
199 found = true
200 break
201 }
202 }
203
204 if !found {
205 return
206 }
207
208 s.cr.Stop()
209 s.cr = cron.New()
210 for _, entry := range entries {
211 ua := entry.Job.(*userAction)
212 if ua.cfgID == nil || *ua.cfgID != cfgID {
178 s.cr.Schedule(entry.Schedule, entry.Job) 213 s.cr.Schedule(entry.Schedule, entry.Job)
179 } 214 }
180 } 215 }
181 s.cr.Start() 216 s.cr.Start()
182 } 217 }