OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Package engine implements the core logic of the cron service. | 5 // Package engine implements the core logic of the cron service. |
6 package engine | 6 package engine |
7 | 7 |
8 import ( | 8 import ( |
9 "bytes" | 9 "bytes" |
10 "encoding/json" | 10 "encoding/json" |
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
208 q := datastore.NewQuery("CronJob").Eq("Enabled", true) | 208 q := datastore.NewQuery("CronJob").Eq("Enabled", true) |
209 keys := []*datastore.Key{} | 209 keys := []*datastore.Key{} |
210 if err := ds.GetAll(q, &keys); err != nil { | 210 if err := ds.GetAll(q, &keys); err != nil { |
211 return errors.WrapTransient(err) | 211 return errors.WrapTransient(err) |
212 } | 212 } |
213 wg := sync.WaitGroup{} | 213 wg := sync.WaitGroup{} |
214 errs := errors.NewLazyMultiError(len(keys)) | 214 errs := errors.NewLazyMultiError(len(keys)) |
215 for i, key := range keys { | 215 for i, key := range keys { |
216 wg.Add(1) | 216 wg.Add(1) |
217 go func(i int, key *datastore.Key) { | 217 go func(i int, key *datastore.Key) { |
218 » » » errs.Assign(i, e.resetJob(c, key.Last().StringID)) | 218 » » » errs.Assign(i, e.resetJob(c, key.StringID())) |
219 wg.Done() | 219 wg.Done() |
220 }(i, key) | 220 }(i, key) |
221 } | 221 } |
222 wg.Wait() | 222 wg.Wait() |
223 return errors.WrapTransient(errs.Get()) | 223 return errors.WrapTransient(errs.Get()) |
224 } | 224 } |
225 | 225 |
226 // getProjectJobs fetches from datastore all enabled jobs belonging to a given | 226 // getProjectJobs fetches from datastore all enabled jobs belonging to a given |
227 // project. | 227 // project. |
228 func (e *engineImpl) getProjectJobs(c context.Context, projectID string) (map[st
ring]*jobEntity, error) { | 228 func (e *engineImpl) getProjectJobs(c context.Context, projectID string) (map[st
ring]*jobEntity, error) { |
(...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
556 return cb(c, jobID, invocationID) | 556 return cb(c, jobID, invocationID) |
557 } | 557 } |
558 return e.txn(c, jobID, func(c context.Context, job *jobEntity, isNew boo
l) error { | 558 return e.txn(c, jobID, func(c context.Context, job *jobEntity, isNew boo
l) error { |
559 if isNew { | 559 if isNew { |
560 logging.Errorf(c, "Running job is unexpectedly gone") | 560 logging.Errorf(c, "Running job is unexpectedly gone") |
561 return errSkipPut | 561 return errSkipPut |
562 } | 562 } |
563 return e.rollSM(c, job, func(sm *StateMachine) error { return sm
.OnInvocationDone(invocationID) }) | 563 return e.rollSM(c, job, func(sm *StateMachine) error { return sm
.OnInvocationDone(invocationID) }) |
564 }) | 564 }) |
565 } | 565 } |
OLD | NEW |