示例#1
0
    $APPLICATION->IncludeComponent("bitrix:catalog.export.1c", "", array("IBLOCK_ID" => COption::GetOptionString("catalog", "1CE_IBLOCK_ID", ""), "INTERVAL" => COption::GetOptionString("catalog", "1CE_INTERVAL", "-"), "ELEMENTS_PER_STEP" => COption::GetOptionString("catalog", "1CE_ELEMENTS_PER_STEP", 100), "GROUP_PERMISSIONS" => explode(",", COption::GetOptionString("catalog", "1CE_GROUP_PERMISSIONS", "1")), "USE_ZIP" => COption::GetOptionString("catalog", "1CE_USE_ZIP", "Y")));
} elseif ($type == "listen") {
    $APPLICATION->RestartBuffer();
    CModule::IncludeModule('sale');
    CSaleExport::setVersionSchema(\Bitrix\Main\Application::getInstance()->getContext()->getRequest()->get("version"));
    $timeLimit = 240;
    //4 minute
    $startExecTime = time();
    $max_execution_time = intval(ini_get("max_execution_time")) * 0.75;
    $max_execution_time = $max_execution_time > $timeLimit ? $timeLimit : $max_execution_time;
    if (CModule::IncludeModule("sale") && defined("CACHED_b_sale_order")) {
        while (!$CACHE_MANAGER->getImmediate(CACHED_b_sale_order, "sale_orders")) {
            usleep(1000);
            if (CSaleExport::getVersionSchema() > CSaleExport::DEFAULT_VERSION) {
                if (intVal(time() - $startExecTime) > $max_execution_time) {
                    break;
                }
            }
        }
    }
    if ($CACHE_MANAGER->getImmediate(CACHED_b_sale_order, "sale_orders")) {
        echo "success\n";
    } elseif (CSaleExport::getVersionSchema() > CSaleExport::DEFAULT_VERSION) {
        CHTTP::SetStatus("304 Not Modified");
    }
} else {
    $APPLICATION->RestartBuffer();
    echo "failure\n";
    echo "Unknown command type.";
}
require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_after.php";