묻고답하기
캐시 자동정리코딩을 해봤는데 의견 나눠요(?)
2016.01.08 18:53
제가 쓰는 방법의 단점
1. 코어소스를 수정함
2. 캐시삭제를 서버에서 직접하는거지 캐시재생성은 삭제후 최초 접속한사람에 의해 되는거라 그때 접속시간 지연이 조금 발생
3. procAdminSimpleRecompileCacheFile 라는 이름 마음에 안듬(?)
제가 쓴는 방법은 아래에..
1. 주기적으로 cache 풀더 삭제
==========서버측 sh 스크립트==========
---cache_remove.sh 파일---
#!/bin/bash
rm -rf /var/www/html/files/cache
-----
---crontab 설정( 매일 5시에 삭제되는 예시)---
$ crontab -e
0 5 * * * sh /var/www/cache_remove.sh
-----------
2. cache풀더 없을시 캐시파일 재생성
==========코어 소스 수정==========
xe_root/index.php 파일 수정
require dirname(__FILE__) . '/config/config.inc.php';
코드 담에
$hasCacheFolder = true;
if(!FileHandler::isDir('./files/cache')){
$hasCacheFolder = false;
}
이거 넣고..
if($oModuleHandler->init())
이 코드 바로 전에
if(!$hasCacheFolder){
$oAdminAdminController = &getAdminController('admin');
$oAdminAdminController->procAdminSimpleRecompileCacheFile();
}
이거 집어 넣음
xe_root/module/admin/admin.admin.controller.php 코드에 메소드
procAdminSimpleRecompileCacheFile 를 작성하고
그 안 내용은
procAdminRecompileCacheFile 와 같되
맨 끝에
$this->setMessage('success_updated');
를 삭제하고
header('Location: ' . $_SERVER['REQUEST_URI']);
를 집어넣음.
끝.
---개선사항--
첫번째 방법 - 새로운 모듈 만들기.
방법
1. 트리거 이용하여 코어소스 수정x
장점
1. 유지보수가 좋음(코어소스 수정x)
2. 일반적인 호스팅서비스에서 사용가능
단점
1. 주기적으로 특정시간에 몇초간의 접속 딜레이가 발생함(캐시파일 재생성때)
두번째방법 - 캐시파일 삭제뿐만 아니라 재생성도 crontab을 이용.
방법
1. php코드를 crontab에 ..??? 대충 이렇게 만들면 되나..?? 잘 몰라서..
장점
1. 위 단점들 다 커버
단점
1. 일반적인 호스팅서비스에서는 불가능.
2. 모듈을 이용하는 방법보단 어려움
이렇게 적고보니..
이미 위와같은 모듈이 있으려나요? (자동 캐시정리 모듈)
ps. 이글의 의도는 작성자도 모른다고 한다...