한 번에 한 사용자가 액세스 할 수있는 PHP 페이지가 있습니다. 일종의 "가난한 사람의 cron": 백그라운드에서 요청되는 "Javascript"파일입니다. 순간 나는이 같은 잠금 파일 만드는 생각 해요 :PHP에서 잠금 파일은 얼마나 비쌉니까?
if(file_exists($lockfile) && filemtime($lockfile) + EXPIRES_AFTER > time()) {
die("// Page is locked.");
}
touch($lockfile);
// do stuff
unlink($lockfile);
echo "// Cron stuff was run";
을하지만 file_exists
및 다른 페이지 요청을 할 수 있었던 touch
호출 사이 기회의 매우 짧은 창있을 수 있는지 확실하지 않습니다 파일 존재 여부를 확인하고 파일이 존재하지 않는지 확인하십시오. 우리는 아마도 여기에 마이크로 초를 말하고 있습니다. 그래서 제가 꼭 걱정해야 할 요청의 양을 알고 싶습니다.
두 개의 요청이 동일한 정확한 시간에 충돌 할 가능성이 있다고 생각하지 않습니다. 응용 프로그램의 수명이 다가 오면 작은 큐를 사용하고 임의로 큐에있는 사람을 선택하여 서비스를 제공하십시오 파일. 그 외에는이 질문에 대답이 없다고 생각합니다. – Gntem
@ GeoPhoenix : 기회가 있다고 생각하는 이유는 무엇입니까? 그리고 어떻게 같은 경주를 만들지 않고 무작위로 누군가를 선택할 수 있습니까? 대기열에 합류하는 사람과 새로운 대기열을 만드는 사람과 경쟁하십시오. –
노출 창은 요청의 수에서 직접적으로 추론 할 수없는 것보다 시스템 부하의 함수입니다. 20 개의 많은 요청으로 1,000 개 이상의 사소한 요청을로드 할 수 있습니다. – tripleee