내가 PHP를 사용하고 예정하고있는PHP 및 Windows 작업
"C:\PHP\php.exe" "C:\inetpub\wwwroot\cron\run-me.php"
같은이 파일을 박쥐 실행하도록 예약 된 작업을 일부 Windows를 설정했습니다. 이것들은 모두 훌륭하게 작동하며 매 30 분마다 실행하는 작업을 설정했습니다. 'run-me.php'파일에는 레코드의 종료 날짜를 확인하는 스크립트가 포함되어 있으며 종료 날짜가 현재보다 작 으면 만료됩니다 (이메일 전송과 같은 스크립트에 더 많은 기능이 있음). 다시 말하지만, 그들은 모두 훌륭하게 작동합니다.
스크립트는 30 분마다 실행되기 때문에 방문자가 사이트에있을 때 스크립트가 실행되기를 원하기 때문에 기본적으로 각 페이지로드시 종료 항목 확인, 만료, 모든 레코드 유지 최신 정보. Windows 작업에서 실행하는 이유는 몇 시간 동안 방문자가 없기 때문에 기록을 만료하고 전자 메일을 보내야하기 때문입니다.
이제는 Windows 작업이 실행 중이고 방문자가 페이지를 다시로드하는 경우 동일한 내용의 이중 이메일을 자주 받기 때문에 실행중인 이중 스크립트가 발생하는 문제가 있습니다.
내 Windows 작업은 단일 인스턴스 만 실행하도록 허용하며 5 분 이상 실행하면 강제로 중지됩니다.
내 질문은 다음과 같은 스크립트의 인스턴스가 하나만 실행되도록
- 내가 내 PHP 스크립트에서 Windows 예약 작업을 실행 할 수 있습니까?
- DB 용 MySQL을 사용하고 있습니다. 행을 잠그면 아무 것도 수행 할 수 없으므로 레코드에 대한 첫 번째 액세스를 실행하는 스크립트가 허용됩니다.
flock() 파일 사용 –