Ejemplo n.º 1
0
 /**
  * @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;
 }
Ejemplo n.º 2
0
 /**
  * @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' => '停止任务失败!'];
 }
Ejemplo n.º 3
0
 /**
  * @param int $id
  * @return mixed
  */
 static function task($id)
 {
     $task_model = new Model_Task();
     return $task_model->get_one_by_id($id);
 }