'I': '22h:26h',
}
MAX_JOBS = { 'F': 2,
- 'D': 1,
+ 'D': 2,
'I': 2,
'total': 12,
}
SELECT name, MAX(starttime) AS starttime
FROM job
WHERE type='B' AND
- jobstatus IN ('A', 'f')
+ jobstatus IN ('A', 'f', 'E')
GROUP BY name
""", {})
failed_backups = set()
run_cnt += len(current_backups[t])
total_slots += max_jobs[t]
if len(candidates[t]) == 0:
- logger.info("No candidates for %s", t)
+ logger.info("No candidates for %s(%s) jobs", t, TYPES_COMPLETE_NAME[t])
continue
free_slots = min(total_slots - run_cnt, total_free)
if free_slots <= 0:
- logger.info("No free slots for %s but %d candidates", t, len(candidates[t]))
+ logger.info("No free slots for %s(%s) jobs but %d candidate(s)", t, TYPES_COMPLETE_NAME[t], len(candidates[t]))
continue
- logger.info("Have %d candidates and %d free slots for %s.", len(candidates[t]), free_slots, t)
+ logger.info("Have %d candidate(s) and %d free slots for %s(%s) jobs.", len(candidates[t]), free_slots, t, TYPES_COMPLETE_NAME[t])
picked = random.sample(candidates[t], min(free_slots, len(candidates[t])))
for p in picked:
logger.info(" Will run: %s/%s", p['client'], p['level'])