/** * @param string $strEventName * @param array $arrArguments * * @return bool */ public function handleEvent($strEventName, array $arrArguments) { //unwrap arguments list($strSystemid, $strSourceClass) = $arrArguments; if (self::$BIT_UPDATE_INDEX_ON_END_OF_REQUEST) { class_module_search_request_endprocessinglistener::addIdToDelete($strSystemid); return true; } else { $objIndex = new class_module_search_indexwriter(); return $objIndex->removeRecordFromIndex($strSystemid); } }
/** * Handles the processing of objects directly */ private function processDirectly() { $objIndex = new class_module_search_indexwriter(); //start by processing the records to be deleted foreach (self::$arrToDelete as $strOneId => $strObject) { $objIndex->removeRecordFromIndex($strOneId); } //add new records foreach (self::$arrToIndex as $strOneId => $objInstance) { if (!is_object($objIndex) && validateSystemid($objInstance)) { $objInstance = class_objectfactory::getInstance()->getObject($objInstance); } $objIndex->indexObject($objInstance); } }
/** * @return bool */ public function execute() { $objIndex = new class_module_search_indexwriter(); //start with deletions $objQueue = new class_search_indexqueue(); foreach ($objQueue->getRows(class_search_enum_indexaction::DELETE()) as $arrRow) { $objIndex->removeRecordFromIndex($arrRow["search_queue_systemid"]); $objQueue->deleteBySystemid($arrRow["search_queue_systemid"]); } //index objects foreach ($objQueue->getRows(class_search_enum_indexaction::INDEX(), 0, $this->intMaxObjectsPerRun) as $arrRow) { $objIndex->indexObject(class_objectfactory::getInstance()->getObject($arrRow["search_queue_systemid"])); $objQueue->deleteBySystemidAndAction($arrRow["search_queue_systemid"], class_search_enum_indexaction::INDEX()); } //reschedule for the next run return false; }