public function route($server_ids = '') { //获取所有开启的转码服务器信息 $servers = hg_get_transcode_servers($server_ids); $min = 0; //临时存储最小的个数 $flag = true; //判断是不是第一次检测 $id_k = 0; //记录下选取的转码服务器的id $ret = array(); if ($servers) { foreach ($servers as $k => $v) { $trans = new transcode(array('host' => $v['trans_host'], 'port' => $v['trans_port'])); //$task = json_decode($trans->get_transcode_tasks(),1); $task = json_decode($v['transcode_tasks'], 1); if ($task['return'] != 'fail') { $all_task_num = intval($task['transcoding_tasks']) + intval($task['waiting_tasks']); if ($all_task_num < $min || $flag) { $min = $all_task_num; $id_k = $k; } $flag = false; } } if ($id_k) { $ret = array('protocol' => 'http://', 'host' => $servers[$id_k]['trans_host'], 'port' => $servers[$id_k]['trans_port'], 'need_file' => $servers[$id_k]['is_carry_file']); } } if (empty($ret)) { return array('return' => 'fail'); } return $ret; }
public function get_trans_server() { $servers = hg_get_transcode_servers(); if ($servers && !empty($servers)) { return $servers; } else { $this->errorOutput('没有可提交的转码服务器'); } }
function checkIsExistTranscode() { //获取开启的转码服务器 if (!($servers = hg_get_transcode_servers())) { return 0; } if (!class_exists('transcode')) { include_once CUR_CONF_PATH . 'lib/transcode.class.php'; } foreach ($servers as $k => $v) { $t_server = array('host' => $v['trans_host'], 'port' => $v['trans_port']); $transcode = new transcode($t_server); $task_info = json_decode($transcode->get_transcode_tasks(), 1); if ($task_info['transcoding_tasks']) { return 1; } } return 2; }
public function getCanUseServers() { $servers = hg_get_transcode_servers(); if ($servers) { foreach ($servers as $k => $v) { //$status = $this->get_transcode_tasks(array('host' => $v['trans_host'],'port' => $v['trans_port'])); $status = json_decode($v['transcode_status'], 1); if ($status['return'] != 'success') { unset($servers[$k]); continue; } //$task = $this->get_transcode_tasks(array('host' => $v['trans_host'],'port' => $v['trans_port'])); $task = json_decode($v['transcode_tasks'], 1); /* $servers[$k]['transcode_on'] = ($task['return'] == 'fail')?'连不上服务器':$task['transcoding_tasks'] . '个'; $servers[$k]['transcode_wait'] = ($task['return'] == 'fail')?'连不上服务器':$task['waiting_tasks'] . '个'; */ $servers[$k]['transcode_on'] = $task['transcoding_tasks'] . '个'; $servers[$k]['transcode_wait'] = $task['waiting_tasks'] . '个'; } } $servers['max_size'] = ini_get('upload_max_filesize'); $this->addItem($servers); $this->output(); }