Merge pull request #1090 from izuzero/develop-procCacheTriggers

트리거 관련 함수 호출시간 단축
This commit is contained in:
Gyeong-Won, Hong 2014-12-13 18:08:22 +09:00
commit bd9793c6e5
2 changed files with 48 additions and 44 deletions

View file

@ -75,17 +75,18 @@ class moduleController extends module
$args->called_position = $called_position; $args->called_position = $called_position;
$output = executeQuery('module.insertTrigger', $args); $output = executeQuery('module.insertTrigger', $args);
if($output->toBool())
//remove from cache
$oCacheHandler = CacheHandler::getInstance('object', NULL, TRUE);
if($oCacheHandler->isSupport())
{ {
$oCacheHandler->invalidateGroupKey('triggers'); //remove from cache
$GLOBALS['__triggers__'] = NULL;
$oCacheHandler = CacheHandler::getInstance('object', NULL, TRUE);
if($oCacheHandler->isSupport())
{
$cache_key = 'triggers';
$oCacheHandler->delete($cache_key);
}
} }
// Delete all the files which contain trigger information
FileHandler::removeFilesInDir("./files/cache/triggers");
return $output; return $output;
} }
@ -103,17 +104,18 @@ class moduleController extends module
$args->called_position = $called_position; $args->called_position = $called_position;
$output = executeQuery('module.deleteTrigger', $args); $output = executeQuery('module.deleteTrigger', $args);
if($output->toBool())
//remove from cache
$oCacheHandler = CacheHandler::getInstance('object', NULL, TRUE);
if($oCacheHandler->isSupport())
{ {
$oCacheHandler->invalidateGroupKey('triggers'); //remove from cache
$GLOBALS['__triggers__'] = NULL;
$oCacheHandler = CacheHandler::getInstance('object', NULL, TRUE);
if($oCacheHandler->isSupport())
{
$cache_key = 'triggers';
$oCacheHandler->delete($cache_key);
}
} }
// Remove the trigger cache
FileHandler::removeFilesInDir('./files/cache/triggers');
return $output; return $output;
} }

View file

@ -629,31 +629,31 @@ class moduleModel extends module
*/ */
function getTriggers($trigger_name, $called_position) function getTriggers($trigger_name, $called_position)
{ {
$triggers = false; if(is_null($GLOBALS['__triggers__']))
// cache controll
$oCacheHandler = CacheHandler::getInstance('object', NULL, TRUE);
if($oCacheHandler->isSupport())
{ {
$object_key = $trigger_name.'_'.$called_position; $triggers = FALSE;
$cache_key = $oCacheHandler->getGroupKey('triggers', $object_key); $oCacheHandler = CacheHandler::getInstance('object', NULL, TRUE);
$triggers = $oCacheHandler->get($cache_key); if($oCacheHandler->isSupport())
}
if($triggers === false)
{
$args = new stdClass();
$args->trigger_name = $trigger_name;
$args->called_position = $called_position;
$output = executeQueryArray('module.getTriggers',$args);
$triggers = $output->data;
if($output->toBool() && $oCacheHandler->isSupport())
{ {
$oCacheHandler->put($cache_key, $triggers); $cache_key = 'triggers';
$triggers = $oCacheHandler->get($cache_key);
}
if($triggers === FALSE)
{
$output = executeQueryArray('module.getTriggers');
$triggers = $output->data;
if($output->toBool() && $oCacheHandler->isSupport())
{
$oCacheHandler->put($cache_key, $triggers);
}
}
foreach($triggers as $item)
{
$GLOBALS['__triggers__'][$item->trigger_name][$item->called_position][] = $item;
} }
} }
return $triggers; return $GLOBALS['__triggers__'][$trigger_name][$called_position];
} }
/** /**
@ -661,14 +661,16 @@ class moduleModel extends module
*/ */
function getTrigger($trigger_name, $module, $type, $called_method, $called_position) function getTrigger($trigger_name, $module, $type, $called_method, $called_position)
{ {
$args = new stdClass(); $triggers = $this->getTriggers($trigger_name, $called_position);
$args->trigger_name = $trigger_name; foreach($triggers as $item)
$args->module = $module; {
$args->type = $type; if($item->module == $module && $item->type == $type && $item->called_method == $called_method)
$args->called_method = $called_method; {
$args->called_position = $called_position; return $item;
$output = executeQuery('module.getTrigger',$args); }
return $output->data; }
return NULL;
} }
/** /**