function do_pass() { $int_max = 2147483647; $now = time(); $insts = BossaJobInst::enum("timeout < {$now}"); if (!count($insts)) { return false; } foreach ($insts as $inst) { BossaDb::start_transaction(); $inst = BossaJobInst::lookup_id($inst->id); // reread instance within transation if ($inst->transition_time < $now) { $job = BossaJob::lookup_id($inst->job_id); $user = BoincUser::lookup_id($inst->user_id); BossaUser::lookup($user); job_timed_out($job, $inst, $user); } $inst->update("timeout={$int_max}"); BossaDb::commit(); } return true; }
function show_bossa_user() { $user_id = get_int('user_id'); $app_id = get_int('app_id'); $user = BoincUser::lookup_id("{$user_id}"); BossaUser::lookup($user); $app = BossaApp::lookup_id($app_id); include_app_file($app_id); admin_page_head("{$user->name} ({$app->name})"); $x = user_summary($user); if ($x) { echo "User info: {$x}<br>"; } $insts = BossaJobInst::enum("user_id={$user_id}"); start_table(); table_header("Job", "Calibration?", "Start", "Duration", "Response"); foreach ($insts as $inst) { $job = BossaJob::lookup_id($inst->job_id); table_row("{$inst->job_id} <a href=bossa_admin.php?action=job_show_insts&job_id={$inst->job_id}>(details)</a><br>" . job_summary($job), calibration_job_string($inst, $job), time_str($inst->create_time), job_duration($inst), instance_summary($inst->get_opaque_data())); } end_table(); admin_page_tail(); }