Example #1
0
 static function task_module_list_action()
 {
     $task_id = Lib_Request::get_int('task_id');
     $page = Lib_Request::get_int('page');
     $page = $page < 1 ? 1 : $page;
     $page_size = 20;
     $offset = intval(($page - 1) * $page_size);
     if (empty($task_id) && $task_id != 0) {
         Module_View_Main::view()->output(['errno' => Const_Err_DataAccess::ERR_GET_PARAM, 'data' => '无此任务']);
     }
     $task_module_record = new Model_TaskRunModuleRecord();
     $records = $task_module_record->get_records_by_task_id($task_id, $page_size, $offset);
     if (!isset($records['errno']) && $records['errno'] !== Const_Err_Base::ERR_OK) {
         Module_View_Main::view()->output(['errno' => Const_Err_DataAccess::ERR_TASK_NOT_EXISTS, 'data' => '获取任务失败']);
     }
     $task_infos = $records['data'];
     $modules = Module_ModuleManager_Register::get_instance()->get_registered_modules();
     $status = Module_ModuleManager_Main::$run_module_status_list;
     $task_info = [];
     foreach ($task_infos as $_k => $_v) {
         $_v['start_time'] = isset($_v['start_time']) ? date('Y-m-d H:i:s', $_v['start_time']) : '';
         $_v['end_time'] = isset($_v['end_time']) ? date('Y-m-d H:i:s', $_v['end_time']) : '';
         $_v['module'] = isset($modules[$_v['module_id']]) ? $modules[$_v['module_id']]['name'] : 'UNKNOW';
         $_v['module_brief'] = isset($modules[$_v['module_id']]) ? $modules[$_v['module_id']]['brief'] : '暂无信息';
         $_v['digit_status'] = $_v['status'];
         $_v['status'] = $status[$_v['status']];
         $task_info[] = $_v;
     }
     Module_View_Main::view()->output($task_info);
 }
Example #2
0
 /**
  * @param int $task_id
  * @param int $mid
  * @return array|mixed
  */
 static function read_meta($task_id, $mid)
 {
     $mtrmr = new Model_TaskRunModuleRecord();
     $pre_result = $mtrmr->get_nearest_record_by_task_and_module($task_id, $mid, null, ['result']);
     if ($pre_result[Const_DataAccess::MREK_ERRNO] != Const_Err_Base::ERR_OK) {
         return $pre_result;
     }
     $pre_result = $pre_result[Const_DataAccess::MREK_DATA];
     if (!isset($pre_result['result']) || !isset($pre_result['result'][Const_DataAccess::MREK_ERRNO])) {
         return Lib_Helper::get_err_struct(Const_Err_Base::ERR_UNEXPECT_RETURN, 'there is no result to use: ' . json_encode($pre_result));
     }
     $meta = null;
     if ($pre_result['result'][Const_DataAccess::MREK_ERRNO] == Const_Err_Base::ERR_OK && isset($pre_result['result'][Const_DataAccess::MREK_DATA])) {
         $meta = $pre_result['result'][Const_DataAccess::MREK_DATA];
     } elseif (isset($pre_result['result'][Const_DataAccess::MREK_META])) {
         $meta = $pre_result['result'][Const_DataAccess::MREK_META];
     } else {
         return Lib_Helper::get_err_struct(Const_Err_Base::ERR_UNEXPECT_RETURN, 'there is no result to use: ' . json_encode($pre_result));
     }
     return Lib_Helper::get_return_struct($meta);
 }
Example #3
0
 /**
  * @param int $mid
  * @param array $stuff_mids
  * @param array $id_map
  * @return callable
  */
 static function after_run_module_record_hook($mid, $stuff_mids, $id_map)
 {
     if ($stuff_mids === null) {
         $stuff_mids = [];
     }
     if (!isset($id_map[$mid][1])) {
         Lib_Log::warn("%s gen record id and order failed!", __METHOD__);
     }
     return function ($task_id, $module_id, $class, $result) use($mid, $stuff_mids, $id_map) {
         $record_id = $id_map[$mid][0];
         $model_module_record = new Model_TaskRunModuleRecord();
         // log for record
         Lib_Log::debug('record after hook task_id: [%d], module_id: [%d], record_id: [%d]', [$task_id, $module_id, $record_id]);
         // end log
         $stat = [];
         $end_time = time();
         $counts = Module_ControlCentre_Counter::get_all_counts();
         if (!isset($result['errno']) || $result['errno'] !== Const_Err_Base::ERR_OK) {
             $record = ['status' => Module_ModuleManager_Main::RUN_MODULE_STATUS_FAILED, 'result' => $result, 'end_time' => $end_time];
             if (isset($result[Const_DataAccess::MREK_STATUS])) {
                 $record['status'] = $result[Const_DataAccess::MREK_STATUS];
             }
         } else {
             $record = ['status' => Module_ModuleManager_Main::RUN_MODULE_STATUS_FINISH, 'end_time' => $end_time];
             $data = $result['data'];
             if (method_exists($class, 'format_record_msg')) {
                 $stat = call_user_func([$class, 'format_record_msg'], $data);
             }
             if (!empty($stat)) {
                 $record['result'] = ['errno' => Const_Err_Base::ERR_OK, 'msg' => $stat];
                 $record['stat'] = $stat;
             }
         }
         if ($counts['errno'] != Const_Err_Base::ERR_OK) {
             $stuff_mids = [];
         } else {
             $counts = $counts['data'];
             $_tmp_stat = Module_ControlCentre_Counter::formated_counts($mid, $counts);
             if (is_array($_tmp_stat) && !empty($_tmp_stat)) {
                 $record['stat'] = isset($record['stat']) ? array_merge($_tmp_stat, $record['stat']) : $_tmp_stat;
             }
             unset($_tmp_stat);
         }
         $model_module_record->update_record($record_id, $record);
         foreach ($stuff_mids as $_mid) {
             $stat = [];
             $record_id = $id_map[$_mid][0];
             $_tmp_stat = Module_ControlCentre_Counter::formated_counts($_mid, $counts);
             is_array($_tmp_stat) && ($stat = array_merge($_tmp_stat, $stat));
             unset($_tmp_stat);
             $record = ['status' => Module_ModuleManager_Main::RUN_MODULE_STATUS_CALLED, 'end_time' => $end_time];
             if (!empty($stat)) {
                 $record['stat'] = $stat;
             }
             $model_module_record->update_record($record_id, $record);
         }
     };
 }