Ejemplo n.º 1
0
 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);
 }
Ejemplo n.º 2
0
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');