Пример #1
0
 /**
  * @param int $ap_id
  * @param int $mode
  * @param array $options
  * @param string $php_script
  * @return array
  */
 static function exec_task($ap_id, $mode = Module_FlowManager_Main::RUN_MODE_CALLBACK, $options = ['meta' => true], $php_script = 'tools/access_point.php')
 {
     if (empty($ap_id)) {
         return Lib_Helper::get_err_struct(Const_Err_DataAccess::ERR_ID_NOT_SET, '没有获取到接入点ID');
     }
     if (php_sapi_name() != 'cli') {
         Lib_Log::info("Run task, user [%s], Ap id:[%d]", [Module_Account_User::get_current_user(), $ap_id]);
     }
     if (Da\Sys_App::run_mode() == DA_RUN_MODE_PRO && $mode == Module_FlowManager_Main::RUN_MODE_CALLBACK && !isset($options['without_ct'])) {
         return Module_ScheduledTask_Main::run_ap_task($ap_id);
     } else {
         self::exec_task_by_cli($ap_id, $mode, $options, $php_script);
     }
     return Lib_Helper::get_return_struct(['msg' => '运行成功']);
 }
Пример #2
0
 static function run_custom_task_action()
 {
     // ap id for run
     $ap_id = Lib_Request::post_int_var('ap_id');
     if (empty($ap_id) && $ap_id != 0) {
         Module_View_Main::view()->output(['errno' => Const_Err_DataAccess::ERR_GET_PARAM, 'data' => '无此接入点']);
     }
     $options = Lib_Request::post_array_vars();
     $options['without_ct'] = true;
     // just run at cmd mode, not use ct to start task
     $mode = Module_FlowManager_Main::RUN_MODE_CALLBACK;
     isset($options['mode']) && ($mode = $options['mode']);
     $result = Da\Sys_App::run_mode() == DA_RUN_MODE_PRO ? Module_ControlCentre_Main::exec_task($ap_id, $mode, $options, 'tools/run_ap.php') : Module_ControlCentre_Main::exec_task($ap_id, $mode, $options);
     $diff = Module_OperationRecord_Main::get_diff([], $options);
     if (Const_Err_Base::ERR_OK !== $diff['errno']) {
         $diff = [];
     }
     $diff = $diff['data'];
     Module_OperationRecord_Main::add_record(Module_OperationRecord_Main::OPCODE_TASK_RUN, $diff, $ap_id);
     Module_View_Main::view()->output($result);
 }