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); }
/** * @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); }
/** * @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); } }; }