Use object cache to store notification list in ncenterlite

오브젝트 캐시 사용시 알림센터에서 플래그 파일 대신 캐시를 활용하도록 변경.
기존 방식에서 오브젝트 캐시로 전환시 플래그 파일은 삭제됨.
This commit is contained in:
Kijin Sung 2018-01-15 14:20:51 +09:00
parent 25369a15f8
commit 702d94a9e7
3 changed files with 34 additions and 14 deletions

View file

@ -169,6 +169,7 @@ class ncenterliteAdminController extends ncenterlite
$reg_obj = new stdClass();
$reg_obj->regdate = time();
Rhymix\Framework\Cache::clearGroup('ncenterlite');
$flag_path = \RX_BASEDIR . 'files/cache/ncenterlite/new_notify/delete_date.php';
Rhymix\Framework\Storage::writePHPData($flag_path, $reg_obj);

View file

@ -1105,24 +1105,33 @@ class ncenterliteController extends ncenterlite
{
return;
}
$cache_key = sprintf('ncenterlite:notify_list:%d', $member_srl);
Rhymix\Framework\Cache::set($cache_key, $output);
$flag_path = \RX_BASEDIR . 'files/cache/ncenterlite/new_notify/' . getNumberingPath($member_srl) . $member_srl . '.php';
if(file_exists($flag_path))
if (Rhymix\Framework\Cache::getDriverName() !== 'dummy')
{
FileHandler::removeFile($flag_path);
return;
}
FileHandler::makeDir(\RX_BASEDIR . 'files/cache/ncenterlite/new_notify/' . getNumberingPath($member_srl));
$buff = "<?php return unserialize(" . var_export(serialize($output), true) . ");\n";
FileHandler::writeFile($flag_path, $buff);
elseif(!file_exists($flag_path))
{
$buff = "<?php return unserialize(" . var_export(serialize($output), true) . ");\n";
FileHandler::writeFile($flag_path, $buff);
}
}
public function removeFlagFile($member_srl = null)
{
if($member_srl === null)
if(!$member_srl)
{
return;
}
$cache_key = sprintf('ncenterlite:notify_list:%d', $member_srl);
Rhymix\Framework\Cache::delete($cache_key);
$flag_path = \RX_BASEDIR . 'files/cache/ncenterlite/new_notify/' . getNumberingPath($member_srl) . $member_srl . '.php';
if(file_exists($flag_path))
{

View file

@ -199,12 +199,6 @@ class ncenterliteModel extends ncenterlite
}
$output->data = $list;
if($page <= 1 && $output->flag_exists !== true)
{
$oNcenterliteController = getController('ncenterlite');
$oNcenterliteController->updateFlagFile($member_srl, $output);
}
return $output;
}
@ -245,6 +239,13 @@ class ncenterliteModel extends ncenterlite
$member_srl = $logged_info->member_srl;
}
$cache_key = sprintf('ncenterlite:notify_list:%d', $member_srl);
$output = Rhymix\Framework\Cache::get($cache_key);
if ($output !== null)
{
return $output;
}
$flag_path = \RX_BASEDIR . 'files/cache/ncenterlite/new_notify/' . getNumberingPath($member_srl) . $member_srl . '.php';
if(FileHandler::exists($flag_path) && $page <= 1)
{
@ -265,7 +266,7 @@ class ncenterliteModel extends ncenterlite
$output = Rhymix\Framework\Storage::readPHPData($flag_path);
if($output !== false)
{
$output->flag_exists = true;
Rhymix\Framework\Cache::set($cache_key, $output);
return $output;
}
}
@ -280,12 +281,21 @@ class ncenterliteModel extends ncenterlite
$args->readed = $readed;
}
$output = executeQueryArray('ncenterlite.getNotifyList', $args);
$output->flag_exists = false;
if (!$output->data)
{
$output->data = array();
}
if (Rhymix\Framework\Cache::getDriverName() !== 'dummy')
{
Rhymix\Framework\Cache::set($cache_key, $output);
}
elseif($page <= 1)
{
$oNcenterliteController = getController('ncenterlite');
$oNcenterliteController->updateFlagFile($member_srl, $output);
}
return $output;
}