Example #1
0
 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;
 }
Example #2
0
 public function get_trans_server()
 {
     $servers = hg_get_transcode_servers();
     if ($servers && !empty($servers)) {
         return $servers;
     } else {
         $this->errorOutput('没有可提交的转码服务器');
     }
 }
Example #3
0
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;
}
Example #4
0
 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();
 }