Example #1
0
#!/usr/bin/php5 -q
<?php 
// Init scripts, library locations, and binaries
$locum_lib_dir = '/usr/local/lib/locum';
$mysql_init_script = '/etc/init.d/mysql';
$sphinx_init_script = '/etc/init.d/sphinx';
$sphinx_indexer = '/usr/local/sphinx/bin/indexer';
// Include Locum libraries
require_once $locum_lib_dir . '/locum-server.php';
// Data Set repair
$locum = new locum_server();
$db =& MDB2::connect($locum->dsn);
$min_bib_result =& $db->query('SELECT MIN(bnum) FROM locum_bib_items');
$min_bib = $min_bib_result->fetchOne();
$max_bib_result =& $db->query('SELECT MAX(bnum) FROM locum_bib_items');
$max_bib = $max_bib_result->fetchOne();
$bnum_result =& $db->query("SELECT bnum FROM locum_bib_items WHERE bnum >= {$min_bib} AND bnum <= {$max_bib}");
$bnum_arr = $bnum_result->fetchCol();
$bib_range = array();
for ($i = $min_bib; $i < $max_bib; $i++) {
    $bib_range[] = $i;
}
$empty_bibs = array_diff($bib_range, $bnum_arr);
foreach ($empty_bibs as $empty_bib) {
    $locum->harvest_bibs($empty_bib, $empty_bib);
}
$locum->rebuild_holds_cache();
// Restart services, reindex, etc.
shell_exec($mysql_init_script . ' restart');
sleep(2);
shell_exec($sphinx_indexer . '  --all --rotate');
Example #2
0
// Init scripts, library locations, and binaries
$locum_lib_dir = '/usr/local/lib/locum';
$mysql_init_script = '/etc/init.d/mysql';
$sphinx_init_script = '/etc/init.d/sphinx';
$sphinx_indexer = '/usr/local/sphinx/bin/indexer';
// Include Locum libraries
require_once $locum_lib_dir . '/locum-server.php';
// Data Set repair
$locum = new locum_server();
// Older records tend to be much more weeded, so the child processes
// that handle the higher bib nums often work much harder and longer.
// This is a way around that.
if ($last_record - $first_record > 1000) {
    $split_amount = ceil(($last_record - $first_record) / $large_record_split);
    $begin_at_bib = $first_record;
    for ($i = 0; $i < $large_record_split; $i++) {
        $split_bib_arr[$i]['first'] = $begin_at_bib;
        $split_bib_arr[$i]['last'] = $begin_at_bib + $split_amount;
        $begin_at_bib = $begin_at_bib + $split_amount + 1;
    }
    foreach ($split_bib_arr as $split_bib) {
        $locum->harvest_bibs($split_bib['first'], $split_bib['last'], TRUE, FALSE);
    }
} else {
    $locum->harvest_bibs($first_record, $last_record, TRUE, FALSE);
}
$locum->rebuild_holds_cache();
// Restart services, reindex, etc.
shell_exec($mysql_init_script . ' restart');
sleep(2);
shell_exec($sphinx_indexer . '  --all --rotate');