나는 그렇지 않으면PHP flock() 비 블로킹 여전히 블록 이유? 파일이 잠겨 있지 않은 경우
<?php
$fp = fopen("/var/tmp/your.lock", "w");
if (!flock($fp, LOCK_EX|LOCK_NB)) { // try to get exclusive lock, non-blocking
die("Another instance is running");
}
//my script
sleep(10);
echo 'completed successfully';
을 중지 그래서 다음의 예를 확인해야 스크립트의 다른 인스턴스가 이미 임시 파일의 잠금을 획득하여 실행되고 있는지 확인하기 위해 무리() 함수를 사용하고 있습니다 스크립트는 다른 브라우저에서 동시에 두 번 파일을 호출 할 때 문제없이 작동합니다. 즉, 동일한 브라우저에서 두 인스턴스를 동시에 열었을 때 대기합니다. 즉, 첫 번째 호출은 잠금을 가져오고 두 번째 호출은 잠금을 닫고 닫지 않습니다.
파일이 인스턴스가 이미 작동하는지 확인하는 다른 방법이있을 수 있지만 그 중 대부분은 실행을 취소 한 다음 사용합니다 스크립트가 오랜 시간이 걸리거나 메모리 제한을 초과하거나 어떤 이유로 든 종료 할 수 있습니다.
어떤 도움이 필요합니까?
많은 답변을 보았지만이 중 하나도 win7 wamp에서이 작업을 만들지 않았습니다! 고맙습니다! – JanBo