Ejemplo n.º 1
0
 /**
  * 初始化设置
  * @param type $path    |错误日志目录
  * @param type $name    |错误日志名字
  * @param type $display |是否显示信息
  * @param type $log2file|是否写入文件
  * @return boolean
  */
 public static final function set($runmodel, $path, $name, $display = true, $log2file = true)
 {
     error_reporting(E_ALL);
     register_shutdown_function(array('Baserror', 'fatal'));
     set_error_handler(array('Baserror', 'corer'));
     self::$cfg_path = $path;
     self::$cfg_name = '[' . date('Y-m-d', time()) . ']' . $name;
     self::$cfg_display = $display;
     self::$cfg_log2file = $log2file;
     self::$cfg_runmodel = $runmodel == 'CLI' ? 'CLI' : 'CGI';
     self::$define_err = array();
     return true;
 }
Ejemplo n.º 2
0
            $obj_dber->log_load($arr_load);
            $obj_dber->log_network($arr_network);
            Baserror::loger("Task [{$server['name']}] finish!");
        } else {
            //数据抓取失败
            Baserror::loger("Fetch [{$server['name']}] false.");
        }
        exit;
    }
}
//Baserror::loger("任务进程组完成创建.开始计时.");
$int_runtime = 0;
//等待子进程
do {
    foreach ($arr_pids as $key => $val) {
        //每隔一秒检查一次子进程状态
        if (pcntl_waitpid($val, $status, WNOHANG) > -1) {
            //进程仍然在运行
            //Baserror::loger("子进程[$val]正在运行.");
        } else {
            //发生错误时返回-1,如果提供了 WNOHANG作为option(wait3可用的系统)并且没有可用子进程时返回0。
            //已经正常退出,移除PID数组
            unset($arr_pids[$key]);
            //Baserror::loger("子进程[$val]已经退出.");
        }
    }
    sleep(1);
    $int_runtime++;
} while (count($arr_pids) > 0);
Baserror::loger("任务进程组运行结束.耗时{$int_runtime}秒.");
exit;
Ejemplo n.º 3
0
include_once PATH_BASEKIT_SERVER;
include_once PATH_BASEKIT_CHARTS;
include_once PATH_BASEKIT_DT;
include_once PATH_BASEKIT_DB;
include_once PATH_BASEKIT_DBER;
//忽略用户断开
ignore_user_abort(1);
//接收参数
$get_time_start = isset($_POST['time_start']) ? (int) strtotime($_POST['time_start']) : 0;
$get_time_end = isset($_POST['time_end']) ? (int) strtotime($_POST['time_end']) : 0;
$get_realtime = (int) $_POST['realtime'] == 1 ? true : false;
$get_realkeep = (int) $_POST['realkeep'] == 1 ? true : false;
$get_lay_time = isset($_POST['relay_time']) ? (int) $_POST['relay_time'] : 8;
$get_host = $_POST['host_name'];
//设定错误控制
Baserror::set('CLI', PATH_LOG, 'api.log', true, true);
//创建对象
$obj_server = new Bkex_server();
$arr_server = $obj_server->getservers($get_host);
//结果集
$arr_json = array('data' => array(), 'status' => false);
//获取目标服务器
if ($arr_server !== false) {
    $arr_system = $obj_server->system_get($arr_server);
    $obj_charts = new Bkex_charts();
    //判断模式
    if ($get_realtime) {
        //实时模式,采集数据并入库
        $obj_dber = new Bkex_Dber($arr_server, $get_realtime, $get_realkeep);
        $obj_dt = new Bkex_Dt();
        $obj_dt->fetch($arr_server['url']);