diff --git a/reconcile.go b/reconcile.go index 4e45a52..5063102 100644 --- a/reconcile.go +++ b/reconcile.go @@ -16,10 +16,9 @@ func (s *Server) reconcile(ctx context.Context, runID int64, rep *User, dept str return nil } if len(reps) > 1 { - log.Printf("WARNING: run %d: %d reps for chapter %d dept %q; assigning all to %d (fill-only mode)", + log.Printf("run %d: %d reps for chapter %d dept %q; splitting round-robin across %v", runID, len(reps), rep.ChapterID, dept, reps[0]) } - agent := reps[0] members, err := s.store.EligibleMembers(rep.ChapterID, dept) if err != nil { @@ -29,8 +28,8 @@ func (s *Server) reconcile(ctx context.Context, runID int64, rep *User, dept str // loop assigned, skipped, failed := 0, 0, 0 - for _, m := range members { - + for i, m := range members { + agent := reps[i%len(reps)] select { case <-ctx.Done(): log.Printf("run %d: cancelled after %d assigned, %d skipped", runID, assigned, skipped)