query("SELECT `id` FROM log WHERE `type`='judge_scheduler' AND `result`='1' AND `year`='{$config['year']}' ORDER BY `id` DESC LIMIT 1"); if($q->num_rows != 1) { $r['running'] = false; $r['messages'] = ""; $r['percent'] = 0; } else { $d = $q->fetch_assoc(); /* Get all messages */ $r['running'] = true; $r['messages'] = ''; $q = $mysqli->query("SELECT * FROM log WHERE `id`>='{$d['id']}' AND `type`='judge_scheduler' AND year='{$config['year']}' ORDER BY `id`"); while($d = $q->fetch_assoc()) { $r['messages'] .= $d['data']."
"; $r['percent'] = $d['result']; if($d['result'] == 100) { $r['running'] = false; } } } /* Get data from most recent run of the scheduler from the log */ print(json_encode($r)); exit(); case 'run': sfiab_log($mysqli, "judge_scheduler", $u, 1, "Initializing..."); $mysqli->real_query("INSERT INTO queue(`command`,`result`) VALUES('judge_scheduler','queued')"); queue_start($mysqli); form_ajax_response(array('status'=>0, )); exit(); case 'run_ts': sfiab_log($mysqli, "judge_scheduler", $u, 1, "Initializing..."); $mysqli->real_query("INSERT INTO queue(`command`,`result`) VALUES('timeslot_scheduler','queued')"); queue_start($mysqli); form_ajax_response(array('status'=>0, )); exit(); } sfiab_page_begin($u, "Judge Scheduler", $page_id); $timeslots = timeslots_load_all($mysqli); ?>

Judge Scheduler Settings

These settings can be changed on the Configuration Variables - Judge Scheduler and Timeslots pages. query("SELECT * FROM config WHERE category='Judge Scheduler' ORDER BY `order`,var"); while($r = $q->fetch_assoc()) { if($r['var'] == 'judge_divisional_prizes' || $r['var'] == 'judge_divisional_distribution') { continue; } ?>
Divisional Prizes and Distribution - %
Timeslots
- - - timeslots of minutes each.


Run The Scheduler

The judge scheduler takes about one minute to run. It will:

Additional help is is available: Judge Scheduler Documentation


Scheduler Status

Status:
Output:

The complete output log is available here: Judge Scheduler Log