* (at your option) any later version. * * This code is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * @category Application * @author Ralf Claussnitzer <*****@*****.**> * @author Henning Gerhardt <*****@*****.**> * @copyright Copyright (c) 2010 * Saechsische Landesbibliothek - Staats- und Universitaetsbibliothek Dresden (SLUB) * @license http://www.gnu.org/licenses/gpl.html General Public License * @version $Id$ */ define('APPLICATION_ENV', 'production'); // basic bootstrapping require_once dirname(__FILE__) . '/../common/bootstrap.php'; // set up job runner $jobrunner = new Opus_Job_Runner(); $jobrunner->setLogger(Zend_Registry::get('Zend_Log')); // no waiting between jobs $jobrunner->setDelay(0); // set a limit of 100 index jobs per run $jobrunner->setLimit(100); $indexWorker = new Qucosa_Job_Worker_IndexOpusDocument(); $indexWorker->setIndex(Zend_Registry::get('Qucosa_Search_Index')); $indexWorker->setFileBasePathPattern(Zend_Registry::get('Zend_Config')->file->destinationPath . '/$documentId'); $jobrunner->registerWorker($indexWorker); // run processing $jobrunner->run();
public function testCheckconsistencyActionResult() { $this->enableAsyncIndexmaintenanceMode(); $this->assertEquals(0, Opus_Job::getCountForLabel(Opus_Job_Worker_ConsistencyCheck::LABEL), 'missing cleanup of jobs table'); $this->getRequest()->setMethod('POST'); $this->dispatch('/admin/indexmaintenance/checkconsistency'); $this->assertResponseCode(302); $this->assertResponseLocationHeader($this->getResponse(), '/admin/indexmaintenance'); $this->assertEquals(1, Opus_Job::getCountForLabel(Opus_Job_Worker_ConsistencyCheck::LABEL), 'consistency check job was not stored in database'); /* * check if job was scheduled for execution */ $this->resetResponse(); $this->resetRequest(); $this->dispatch('/admin/indexmaintenance/index'); $this->assertResponseCode(200, 'foo'); $baseUrl = $this->getRequest()->getBaseUrl(); $body = $this->getResponse()->getBody(); $this->assertContains('div class="opprogress"', $body); $this->assertNotContains("action=\"{$baseUrl}/admin/indexmaintenance/checkconsistency\"", $body); // TODO $this->assertContains("action=\"$baseUrl/admin/indexmaintenance/checkfulltexts\"", $body); // TODO $this->assertContains("action=\"$baseUrl/admin/indexmaintenance/optimizeindex\"", $body); /* * run job immediately and check for result */ $jobrunner = new Opus_Job_Runner(); $jobrunner->setLogger(Zend_Registry::get('Zend_Log')); $worker = new Opus_Job_Worker_ConsistencyCheck(); $jobrunner->registerWorker($worker); $jobrunner->run(); $jobs = Opus_Job::getByLabels(array(Opus_Job_Worker_ConsistencyCheck::LABEL)); if (count($jobs) > 0) { $job = $jobs[0]; $message = 'at least one unexpected job found (Label: \'%s\', State: \'%s\', Data: \'%s\', Errors: \'%s\\, SHA1 Hash: \'%s\')'; $label = $job->getLabel(); $state = $job->getState(); $data = $job->getData(); $errors = $job->getErrors(); $hash = $job->getSha1Id(); $this->fail(sprintf($message, $label, $state, $data, $errors, $hash)); } $this->assertEquals(0, Opus_Job::getCountForLabel(Opus_Job_Worker_ConsistencyCheck::LABEL), 'consistency check job was not removed from database after execution'); $this->resetResponse(); $this->resetRequest(); $this->dispatch('/admin/indexmaintenance/index'); $this->assertResponseCode(200, 'bar'); $baseUrl = $this->getRequest()->getBaseUrl(); $body = $this->getResponse()->getBody(); $this->assertNotContains('div class="opprogress"', $body); $this->assertContains('pre class="opoutput"', $body); $this->assertContains("action=\"{$baseUrl}/admin/indexmaintenance/checkconsistency\"", $body); // TODO $this->assertContains("action=\"$baseUrl/admin/indexmaintenance/checkfulltexts\"", $body); // TODO $this->assertContains("action=\"$baseUrl/admin/indexmaintenance/optimizeindex\"", $body); }
private function runJobImmediately() { $this->assertEquals(1, Opus_Job::getCountForLabel(Opus_Job_Worker_ConsistencyCheck::LABEL)); $jobrunner = new Opus_Job_Runner(); $jobrunner->setLogger(Zend_Registry::get('Zend_Log')); $worker = new Opus_Job_Worker_ConsistencyCheck(); $jobrunner->registerWorker($worker); $jobrunner->run(); $this->assertEquals(0, Opus_Job::getCountForLabel(Opus_Job_Worker_ConsistencyCheck::LABEL)); }