Mercurial > gemma
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 } |