그래서 나는 많은 데이터베이스와 워드 프레스를 통해 리더 보드를 만들었습니다. 데이터 쿼리, 계산 및 업데이트가 많은 것처럼 보이며 리더 보드 디스플레이 페이지가 실제로 느려집니다. 그래서 쿼리 한 마지막 시간 이후로 한 시간이 지났을 경우에만 쿼리 및 계산 얻으려고 노력하고있어. 이것은 지금까지 내 코드입니다 : 나는 또한 "글로벌"대신 "정적"시도했습니다마지막 실행 후 1 시간이 지난 경우에만 PHP 코드를 실행하십시오.
<?php
static $lastQueryTime;
if(!isset($lastQueryTime) || ($now > $lastQueryTime + (60*60))){
$lastQueryTime = $now;
//PHP to run...Querying, calculating, updating
}
?>
하지만 둘은 쿼리가 항상 페이지로드에서 발생 일 것 같았다.
PHP 외부에 값을 저장해야합니다 (런타임이 실행 됨). 가장 가능성있는 옵션은 SQL 데이터베이스 (MySQL)이며, 가장 빠른 옵션은 캐시 서버 (Redis)이고 설정하는 가장 빠른 방법은 정적 파일 (사용자가 직접 읽고 쓸 수 있음)입니다. – Sam
'global'도'static'도 여러분을 여기서 잘 할 수 없습니다 - 왜냐하면 PHP 스크립트는 현재 요청에 대답 할 필요가있을 때만 "살아"있기 때문에 ... 그 일이 끝나면 모든 변수가 사라집니다. 스크립트의 다음 "인스턴스"가 파일, 데이터베이스 등에서 다시 읽을 수있는 값을 저장할 필요가 있습니다. – CBroe
간단히 'cron'으로 스크립트를 실행 하는게 어떨까요? – mario