diff --git a/webservices/cron_status.php b/webservices/cron_status.php new file mode 100644 index 0000000000..e26a7701b0 --- /dev/null +++ b/webservices/cron_status.php @@ -0,0 +1,82 @@ +add_header('Access-Control-Allow-Origin: *'); + $oP->SetData(["status" => $sStatus, 'message' => $sMsg]); + $oP->SetOutputDataOnly(true); + $oP->Output(); +} +catch (Exception $e) { + \IssueLog::Error("Cannot cron status", null, ['msg' => $e->getMessage(), 'stack' => $e->getTraceAsString()]); + http_response_code(500); + $oP = new JsonPage(); + $oP->add_header('Access-Control-Allow-Origin: *'); + $oP->SetData(["message" => $e->getMessage()]); + $oP->SetOutputDataOnly(true); + $oP->Output(); +} + +function ReadParam($sParam, $sDefaultValue = null, $sSanitizationFilter = utils::ENUM_SANITIZATION_FILTER_RAW_DATA) +{ + $sValue = utils::ReadParam($sParam, null, true, $sSanitizationFilter); + if (is_null($sValue)) { + $sValue = utils::ReadPostedParam($sParam, $sDefaultValue, $sSanitizationFilter); + } + + return trim($sValue); +} \ No newline at end of file diff --git a/webservices/launch_cron_asynchronously.php b/webservices/launch_cron_asynchronously.php new file mode 100644 index 0000000000..728ae1d0db --- /dev/null +++ b/webservices/launch_cron_asynchronously.php @@ -0,0 +1,100 @@ +Get('php_path')); + + if ($bAsynchronous) { + $sCli = sprintf("$sPHPExec %s/cron.php $sCliParams 2>&1 >>$sLogFile &", __DIR__); + file_put_contents($sLogFile, $sCli); + $process = popen($sCli, 'r'); + } else { + + + $sCli = sprintf("\n $sPHPExec %s/cron.php $sCliParams", __DIR__); + $fp = fopen($sLogFile, 'a+'); + fwrite($fp, $sCli); + + $aDescriptorSpec = [ + 0 => ["pipe", "r"], // stdin + 1 => ["pipe", "w"], // stdout + ]; + $rProcess = proc_open($sCli, $aDescriptorSpec, $aPipes, __DIR__, null); + + $sStdOut = stream_get_contents($aPipes[1]); + fclose($aPipes[1]); + $iCode = proc_close($rProcess); + + fwrite($fp, $sStdOut); + fwrite($fp, "Exiting: ".time().' ('.date('Y-m-d H:i:s').')'); + fclose($fp); + } + + http_response_code(200); + $oP = new JsonPage(); + $oP->add_header('Access-Control-Allow-Origin: *'); + $oP->SetData(["message" => "OK"]); + $oP->SetOutputDataOnly(true); + $oP->Output(); +} +catch (Exception $e) { + \IssueLog::Error("Cannot run cron", null, ['msg' => $e->getMessage(), 'stack' => $e->getTraceAsString()]); + http_response_code(500); + $oP = new JsonPage(); + $oP->add_header('Access-Control-Allow-Origin: *'); + $oP->SetData(["message" => $e->getMessage()]); + $oP->SetOutputDataOnly(true); + $oP->Output(); +} + +function ReadParam($sParam, $sDefaultValue = null, $sSanitizationFilter = utils::ENUM_SANITIZATION_FILTER_RAW_DATA) +{ + $sValue = utils::ReadParam($sParam, null, true, $sSanitizationFilter); + if (is_null($sValue)) { + $sValue = utils::ReadPostedParam($sParam, $sDefaultValue, $sSanitizationFilter); + } + + return trim($sValue); +} \ No newline at end of file