2013-07-11 5 views
0

LAMP 시스템으로 웹 사이트를 운영하고 있습니다.파일을 사용 중일 때 PHP로 파일을 삭제 (연결 해제) 또는 생성 (작성)

콘텐츠는 데이터베이스에서 가져온 것입니다.

캐싱을 위해 웹 서버 (캐싱 할 수있는 콘텐츠 포함)에 파일을 만듭니다 (fwrite() 통해).

때로는 캐시 파일을 삭제하는 중입니다 (unlink() 통해).

파일 생성 및 삭제는 cronjob으로 수행됩니다.

내 질문은 : 내 웹 사이트 방문자가 현재 웹 서버에서 웹 페이지를 요청하고 있는데 A.php 파일을보고이 파일을 쓰거나 삭제하려고하면 어떻게됩니까?

정확하게 말하면 : 내 cronjob이 unlink() 명령을 발행하고 동시에 사용자에게 파일을 제공하면 어떻게됩니까?

경쟁 조건이 발생합니까?

나는 상태를 unlink 및 fwrite 작업에서 검색하는 방법을 알고 있으므로이 함수가 false를 반환하는 한 삭제하거나 쓴 수없는 한 내 unlink/fwrite를 반복 할 수 있습니까?

의견/답변 읽기 기대됨!

답변

-1

예, 분명히 경쟁 조건이 생성됩니다. 웹 서버로부터의 파일 요청과 cron 작업으로부터의 삭제는 독립적 인 프로세스이며 파일로 무엇인가를하고 있는지를 알 수있는 방법이 없습니다.

+0

의견으로 추가해야합니다 –

+0

그리고 그 이유는 무엇입니까? 문제는 "이것이 경쟁 조건을 만들 것인가?"입니다. – zekus

+0

감사합니다.이 문제를 극복하는 방법에 대한 제안은 크게 환영합니다. (: – Sebastian