StateUtils::setBusy(CALC_REALNUMS_STAT);
register_shutdown_function("onShutdown");
// ƒл¤ YellowPagesContentGrabber запускать скрипт без параметров или 0 0
// ƒл¤ YellowPages1ContentGrabber запускать скрипт c параметрами 1 1
$parserId = StateUtils::getProcessNum() + 1;
if ($parserId == 1) {
    $Parser =& new YellowPagesContentGrabber();
} else {
    $Parser =& new YellowPages1ContentGrabber();
}
$Parser->showInfo = false;
$Parser->waitBeforeRequest = 3;
$rubrics =& new RubricsData();
$Parser->rubricsData =& $rubrics;
$ProxyService = new ProxiesService();
$start = (int) FileUtils::loadContents(CALC_START_ID);
$subRubrics = $rubrics->getSubRubricsForParser($parserId, $start, 1);
if (PEAR::isError($subRubrics)) {
    print $subRubrics->getMessage();
    exit;
}
if ($subRubrics->numRows() == 0) {
    // —брос счетчика последнего обработаной записи
    FileUtils::saveContents(CALC_START_ID, "0");
    exit;
}
while ($row =& $subRubrics->fetchRow(DB_FETCHMODE_OBJECT)) {
    $res = $ProxyService->getRandomProxyData();
    $Parser->setProxyData($res);
    $res = $Parser->getRealNum($row->rurl);
    $rubrics->setRealNum($res, $row->rid);