foreach ($service_mapping as $v) { $instance_id = $v['instance_id']; if (lock_instance($pdo, $instance_id)) { insert_action_queue($pdo, INSTANCE_RECONFIGURE_SCHEMA, $instance_id, $username); insert_action_queue($pdo, INSTANCE_RECONFIGURE_SOLRCONF, $instance_id, $username); insert_action_queue($pdo, INSTANCE_STOP, $instance_id, $username); insert_action_queue($pdo, INSTANCE_START, $instance_id, $username); } } } service_redirect(); break; case 'reconfigure_master': $username = check_login($def_url); $service_id = $params['service_id']; $master_info = pdo_get_master_complex($pdo, $service_id); $instance_id = $master_info['instance_id']; if ($instance_id && lock_instance($pdo, $instance_id)) { insert_action_queue($pdo, INSTANCE_RECONFIGURE_SCHEMA, $instance_id, $username); insert_action_queue($pdo, INSTANCE_RECONFIGURE_SOLRCONF, $instance_id, $username); insert_action_queue($pdo, INSTANCE_STOP, $instance_id, $username); insert_action_queue($pdo, INSTANCE_START, $instance_id, $username); } service_redirect(); break; case 'schema_add': $u_info = check_login($req_url); $service_id = $params['service_id']; $type_list = get_schema_type_list($pdo); $service_info = pdo_get_service_byid($pdo, $service_id); $solr_schema = pdo_get_solr_schema($pdo, $service_id);
$now_hour = date("G"); $services = get_service_list_running($link); if (!$services) { exit; } foreach ($services as $s) { if (empty($s["optimize_time"])) { continue; } $hours = explode(",", $s["optimize_time"]); foreach ($hours as $i => $h) { $hours[$i] = intval($h); } if (!in_array($now_hour, $hours)) { continue; } # $instances = pdo_get_instances($link, $s["service_id"]); # if (!$instances) continue; # # foreach ($instances as $i) { # if ($i["writable"]==0) continue; # # insert_action_queue($link, INSTANCE_OPTIMIZE, $i["instance_id"], 'Robot'); # } # 考虑到多master的情况(选第一个writable=1的instance) $master = pdo_get_master_complex($link, $s["service_id"]); if (!$master) { continue; } insert_action_queue($link, INSTANCE_OPTIMIZE, $master["instance_id"], 'Robot'); }