그래서 흥미로운 상황이 있으며이를 해결하는 방법을 모르겠습니다.EBS 공유에서 파일을로드하기위한 시간 제한을 설정하십시오.
영업 데이터를 종합적으로 살펴본 다음 Google Chart를 통해 그래프를 작성하는 프로세스가 있습니다. 데이터베이스 (또는 Google과 관련하여)를 망치는 것을 막으려면 30 분마다 실행하면됩니다. 이전 파일을보고 30 분 임계 값에 도달했는지 확인한 후 30 분 임계 값에 도달했는지 확인한 후 새 파일을 작성합니다. 로드 밸런서 뒤에 두 개의 서버가 있습니다. 따라서 두 서버는이 파일을 저장하기 위해 동일한 위치에 액세스해야합니다. 우리는 NFS를 통해 마운트 된 EBS 공유를 사용하여이 작업을 수행했습니다 (전체 설정은 AWS에 있음). 이 과정은 잘 작동합니다.
때때로 EBS 공유가 느리거나 연결이 끊어지는 문제가 있습니다. 이렇게하면 우리의 내부 도구가이 파일 하나 하나를 처리하기를 기다리는 동안 알림을 끄지 않는 한 파급 효과가 발생합니다. 나는 stream_set_timeout에 대해 이야기하는 몇 가지 스레드 (예 : this one)를 읽었지 만 파일을로드하는 데 (정확히 스트림이 아님) 어떻게 사용하는지 명확하지 않으며 어떤 예제도 찾을 수 없었습니다.
여기에 조각 나는이 스크립트에 대한 제한 시간을 만들 수있는 방법을 당신에게 PHP 파일이
$file = '/ebs/path/to/image.png';
$newfile=false;
if(!is_file($file)) $newfile=true;
elseif(filemtime($file)+1800 < time()) {
$newfile=true;
unlink($file);
}
if(!$newfile){
$i=imagecreatefrompng($file);
header('Content-Type: image/png');
header('Expires: ' . gmdate('D, d M Y H:i:s', filemtime($file) + $timeout) . ' GMT');
imagepng($i);
imagedestroy($i);
exit;
} else {
// Build and output a new file here
}
을 무엇을하고 있는지 아이디어를 제공 할 수있어?
근본적인 원인은 "EBS가 느리거나 연결이 끊어졌습니다"입니다. 궁극적 인 해결책은이 문제를 해결하는 것입니다. AWS가 작업에 부합하는지 여부는 또 다른 질문입니다. –