function search($isbnList) { $bl = new BulkLookupQuery(); if (!is_array($isbnList)) { return false; } foreach ($isbnList as $one) { // Check existing ISBN. $existBibid = $bl->getExistBiblio($one['isbn']); if ($existBibid > 0) { for ($i = 0; $i < $one['amount']; $i++) { $bl->addCopy($existBibid); } $bl->setLookupStatus('copy', $one['isbn']); continue; } $list = $this->_getLookupServers(); $retry = false; if (!is_array($list) || count($list) < 1) { $bl->setLookupStatus('manual', $one['isbn'], $one['amount']); } foreach ($list as $server) { $result = $this->_getLookupResult($server, $one['isbn']); if (!$result || isset($result['error'])) { if (preg_match('/not connect/', $result['error']) || preg_match('/response error/', $result['error'])) { $retry = true; } continue; } $book = array('isbn' => $one['isbn'], 'data' => $result, 'amount' => $one['amount']); $this->_addResult($book); break; } if (isset($result['error'])) { $book = array('isbn' => $one['isbn'], 'data' => NULL); $this->_addResult($book); if ($retry) { $bl->setLookupStatus('retry', $one['isbn']); } else { $bl->setLookupStatus('manual', $one['isbn'], $one['amount']); } } } $bl->saveResults($this->_results); }
if ($_SERVER['REMOTE_ADDR'] !== $_SERVER['SERVER_ADDR']) { die('Access denied.'); } require_once dirname(__FILE__) . "/../shared/common.php"; require_once dirname(__FILE__) . '/../classes/BulkLookup.php'; // Process ISBN lookup $limit = 10; $q = new BulkLookupQuery(); $remain = $q->countQueue(); file_put_contents(dirname(__FILE__) . '/../cron/cronrun.txt', 'LOCK'); if ($remain < 1) { // Disable cron. file_put_contents(dirname(__FILE__) . '/../cron/cronrun.txt', 'OFF'); die; } else { $q->getQueue('queue', $limit); while ($row = $q->fetch()) { $rows[] = $row; } foreach ($rows as $row) { if ($row['tries'] < 3) { //$isbnList[] = $row['isbn']; $isbnList[] = array('isbn' => $row['isbn'], 'amount' => $row['amount']); } else { $q->setLookupStatus('manual', $row['isbn'], $row['amount']); } } $lookup = new BulkLookup(); $lookup->search($isbnList); } file_put_contents(dirname(__FILE__) . '/../cron/cronrun.txt', 'ON');