mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-05-10 20:44:28 +09:00
issue 56 point cache improve performance by using memory
git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@9680 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
2773e107a9
commit
255fdc321b
1 changed files with 14 additions and 1 deletions
|
|
@ -6,6 +6,7 @@
|
||||||
**/
|
**/
|
||||||
|
|
||||||
class pointModel extends point {
|
class pointModel extends point {
|
||||||
|
var $pointList = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Initialization
|
* @brief Initialization
|
||||||
|
|
@ -18,6 +19,9 @@
|
||||||
**/
|
**/
|
||||||
function isExistsPoint($member_srl) {
|
function isExistsPoint($member_srl) {
|
||||||
$member_srl = abs($member_srl);
|
$member_srl = abs($member_srl);
|
||||||
|
|
||||||
|
if($this->pointList[$member_srl]) return true;
|
||||||
|
|
||||||
$args->member_srl = $member_srl;
|
$args->member_srl = $member_srl;
|
||||||
$output = executeQuery('point.getPoint', $args);
|
$output = executeQuery('point.getPoint', $args);
|
||||||
if($output->data->member_srl == $member_srl) return true;
|
if($output->data->member_srl == $member_srl) return true;
|
||||||
|
|
@ -29,16 +33,25 @@
|
||||||
**/
|
**/
|
||||||
function getPoint($member_srl, $from_db = false) {
|
function getPoint($member_srl, $from_db = false) {
|
||||||
$member_srl = abs($member_srl);
|
$member_srl = abs($member_srl);
|
||||||
|
|
||||||
|
// Get from instance memory
|
||||||
|
if(!$from_db && $this->pointList[$member_srl])
|
||||||
|
return $this->pointList[$member_srl];
|
||||||
|
|
||||||
|
// Get from file cache
|
||||||
$path = sprintf('./files/member_extra_info/point/%s',getNumberingPath($member_srl));
|
$path = sprintf('./files/member_extra_info/point/%s',getNumberingPath($member_srl));
|
||||||
if(!is_dir($path)) FileHandler::makeDir($path);
|
if(!is_dir($path)) FileHandler::makeDir($path);
|
||||||
$cache_filename = sprintf('%s%d.cache.txt', $path, $member_srl);
|
$cache_filename = sprintf('%s%d.cache.txt', $path, $member_srl);
|
||||||
|
|
||||||
if(!$from_db && file_exists($cache_filename)) return trim(FileHandler::readFile($cache_filename));
|
if(!$from_db && file_exists($cache_filename))
|
||||||
|
return $this->pointList[$member_srl] = trim(FileHandler::readFile($cache_filename));
|
||||||
|
|
||||||
// Get from the DB
|
// Get from the DB
|
||||||
$args->member_srl = $member_srl;
|
$args->member_srl = $member_srl;
|
||||||
$output = executeQuery('point.getPoint', $args);
|
$output = executeQuery('point.getPoint', $args);
|
||||||
$point = (int)$output->data->point;
|
$point = (int)$output->data->point;
|
||||||
|
|
||||||
|
$this->pointList[$member_srl] = $point;
|
||||||
FileHandler::writeFile($cache_filename, $point);
|
FileHandler::writeFile($cache_filename, $point);
|
||||||
|
|
||||||
return $point;
|
return $point;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue