/** * @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' => '运行成功']); }
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); }