Exemplo n.º 1
0
<?php

require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_before.php";
define("BX_STEP_SIZE", "1");
CModule::IncludeModule("controller");
require_once $_SERVER["DOCUMENT_ROOT"] . BX_ROOT . "/modules/controller/prolog.php";
IncludeModuleLangFile(__FILE__);
$MOD_RIGHT = $APPLICATION->GetGroupRight("controller");
if ($MOD_RIGHT < "V") {
    $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
}
$arTask = CControllerTask::GetTaskArray();
$arStatus = CControllerTask::GetStatusArray();
$dbrTaskN = CControllerTask::GetList(array(), array("=STATUS" => array('N', 'P')), true);
$arTaskN = $dbrTaskN->Fetch();
$iTaskNCnt = IntVal($arTaskN['C']);
if ($_SERVER["REQUEST_METHOD"] == "POST" && $_REQUEST['act'] == 'process' && check_bitrix_sessid()) {
    $strError = "";
    $iStepSize = BX_STEP_SIZE;
    $iCntExecuted = intval($_REQUEST["executed"]);
    $iCntTotal = intval($_REQUEST["cnt"]);
    $tBeginTime = getmicrotime();
    require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_js.php";
    if ($iTaskNCnt > 0) {
        $dbrTask = CControllerTask::GetList(array("ID" => "ASC"), array("=STATUS" => array('N', 'P')));
        $tTasksTime = getmicrotime();
        while ($arTask = $dbrTask->Fetch()) {
            $status = CControllerTask::ProcessTask($arTask["ID"]);
            if ($status === "0" && ($e = $APPLICATION->GetException())) {
                $strError = GetMessage("CTRLR_TASK_ERR_LOCK") . "<br>" . $e->GetString();
                if (strpos($strError, "PLS-00201") !== false && strpos($strError, "'DBMS_LOCK'") !== false) {