$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";