function mainPage(MultiRequest_Request $request, MultiRequest_Handler $handler) { $headers = $request->getResponseHeaders(); $cookies = $request->getRespopnseCookies(); $request = new MultiRequest_Request('https://banweb.banner.vt.edu/ssb/prod/twbkwbis.P_GenMenu?name=bmenu.P_MainMnu'); $request->setCookiesStorage(COOKIE_FILE); $headers = array($headers[5], $headers[6], $headers[7]); $headers[] = 'Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5'; $headers[] = 'Cache-Control: no-cache'; $headers[] = 'Connection: Keep-Alive'; $headers[] = 'Keep-Alive: 300'; $headers[] = 'Accept-Charset: UTF-8,Windows-1251,ISO-8859-1;q=0.7,*;q=0.7'; $headers[] = 'Accept-Language: ru,en-us,en;q=0.5'; $headers[] = 'Pragma:'; $request->addHeaders($headers); $handler->pushRequestToQueue($request); $request->onComplete(function (MultiRequest_Request $request, MultiRequest_Handler $handler) { try { $request->getFailException(); } catch (Exception $e) { exit($e->getMessage()); } // echo '<pre>'; // var_dump($request->getResponseHeaders()); // exit; // echo '<pre>'; var_dump($request->getContent()); exit; }); }
function fetchStock($chunk_size = 500) { $this->CI->db->truncate('product'); $num_rows = $this->fetchCount('stock'); $num_chunks = ceil($num_rows / $chunk_size); $mrHandler = new MultiRequest_Handler(); $mrHandler->setConnectionsLimit(10); $mrHandler->onRequestComplete(array($this, 'debugRequestComplete')); $mrHandler->onRequestComplete(array($this, 'saveCompleteRequestToFile')); for ($i = 0; $i < $num_chunks; $i++) { $offset = $i * $chunk_size; $sql = "/GetSql?datasource=" . $this->datasource . "&query=" . urlencode("SELECT " . implode(",", $this->stock_columns) . " FROM stock WHERE company=1 AND web_available=0 AND flag_redundant<2 AND (qty_hand-qty_aloc)>2 OFFSET {$offset} LIMIT {$chunk_size}"); $url = $this->host . $sql; //$request = new MultiRequest_Request($this->host . '/GetSql'); //$request->setCurlOption(CURLOPT_POST, true); //$request->setCurlOption(CURLOPT_RETURNTRANSFER, true); //$request->setPostVar('datasource', $this->datasource); //$request->setPostVar('query', "SELECT " . implode(",", $this->stock_columns) . " FROM stock WHERE web_available=0 AND flag_redundant<2 AND ((qty_hand-qty_aloc)>2) OFFSET $offset LIMIT $chunk_size"); //$request->setPostVar('query', "SELECT " . implode(",", $this->stock_columns) . " FROM stock OFFSET $offset LIMIT $chunk_size"); $request = new MultiRequest_Request($url); $request->dws_id = $i; $mrHandler->pushRequestToQueue($request); } $mrHandler->start(); }
prepareDownloadsDir(DOWNLOADS_DIR); /*************************************************************** MULTIREQUEST INIT **************************************************************/ $mrHandler = new MultiRequest_Handler(); $mrHandler->setConnectionsLimit(CONNECTIONS_LIMIT); $mrHandler->onRequestComplete('debugRequestComplete'); $mrHandler->onRequestComplete('saveCompleteRequestToFile'); $headers = array(); $headers[] = 'Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5'; $headers[] = 'Cache-Control: no-cache'; $headers[] = 'Connection: Keep-Alive'; $headers[] = 'Keep-Alive: 300'; $headers[] = 'Accept-Charset: UTF-8,Windows-1251,ISO-8859-1;q=0.7,*;q=0.7'; $headers[] = 'Accept-Language: ru,en-us,en;q=0.5'; $headers[] = 'Pragma:'; $mrHandler->requestsDefaults()->addHeaders($headers); $options = array(); $options[CURLOPT_USERAGENT] = 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12'; $mrHandler->requestsDefaults()->addCurlOptions($options); $urls = array('http://www.hokiespa.vt.edu/'); foreach ($urls as $url) { $request = new MultiRequest_Request($url); $mrHandler->pushRequestToQueue($request); print_r($request); exit; } $startTime = time(); set_time_limit(300); $mrHandler->start(); debug('Total time: ' . (time() - $startTime));