질문/조언질답게시판

일종의 캐쉬 개념으로 json 파일로 정보들을 디스크에 직접 써놓고

브라우저에서는 그냥 이 json 파일을 직접 가져다가 읽어서 자바스크립트로

처리하도록 해놓고 있습니다.

근데 문제는 이 json 파일을 업데이트해야하는 경우인데요...

json 파일을 아파치에서 이미 읽고 있는 타이밍에 이 파일을 삭제시키거나

덮어쓰기를 시도하면 아마 실패가 날 것 같아서요...

아파치가 static 파일 읽어가는걸 막을 방법은 없고... php 쪽에서 

기다려야 할 것 같은데 이게 가능할까요?

  • profile
    그냥 지워도 됩니다. 즉시 지워진 것처럼 보이겠지만 실제로는 아파치가 다 읽은 후에 지워집니다. 로그파일을 지워도 아파치가 붙잡고 있으면 디스크 용량을 계속 차지하는 것과 같은 원리입니다.

    파일을 덮어쓸 때는 일단 다른 이름으로 저장한 후, rename 함수로 단번에 덮어쓰는 것이 정석입니다. 덮어쓰는 도중에 반반씩 섞인 내용을 읽어가는 것을 막을 수 있습니다. rename 도중에는 다른 프로그램이 끼어들 수 없다고 리눅스 커널이 보장합니다.
  • profile ?
    감사합니다~

서버에 요청 중입니다. 잠시만 기다려 주십시오...