/** * @param int $task_id * @return array */ private static function _get_task_status($task_id) { $rtn = []; if ($task_id > 0) { $model_task = new Model_Task(); $tasks = $model_task->get_one_by_id($task_id); if ($tasks['errno'] !== Const_Err_Base::ERR_OK) { $rtn['msg'] = '任务信息获取失败!'; } else { if (isset($tasks['data']['status'])) { $rtn['status'] = $tasks['data']['status']; } else { $rtn['msg'] = '未获取到任务状态!'; } } } else { $rtn['msg'] = '任务ID错误!'; } return $rtn; }
/** * @param int $task_id * @return array|mixed */ static function kill_task($task_id) { $model_task = new Model_Task(); $task = $model_task->get_one_by_id($task_id); if ($task['errno'] !== Const_Err_Base::ERR_OK) { return $task; } $task = $task['data']; if (Da\Sys_App::app()->get_run_mode() == DA_RUN_MODE_PRO) { if (isset($task['ap_info']) && isset($task['ap_info']['ap_id'])) { $ap_id = $task['ap_info']['ap_id']; $stop = Module_ScheduledTask_Main::stop_ap_task($ap_id); } } if (!isset($task['task_pid']) || $task['task_pid'] == 0 || $task['task_pid'] == -1) { return ['errno' => Const_Err_DataAccess::ERR_TASK_STOP, 'data' => '没有对应的进程']; } $pid = $task['task_pid']; $return = posix_kill($pid, SIGKILL); if ($return) { $model_task = new Model_Task(); $upinfo = ['status' => self::TASK_STATUS_SHUTDOWN]; $task_model_update = $model_task->update($task_id, $upinfo); return Lib_Helper::get_return_struct('已停止任务:' . '[' . $task_id . ']'); } return ['errno' => Const_Err_DataAccess::ERR_TASK_STOP, 'data' => '停止任务失败!']; }
/** * @param int $id * @return mixed */ static function task($id) { $task_model = new Model_Task(); return $task_model->get_one_by_id($id); }