(1) 프로그램은 예약된 작업을 설정한 후 한 번만 시작하면 되며, 서버가 다시 시작될 때까지 프로그램은 계속 실행됩니다.
(2) 반복해서 실행하면 실행되지 않을 수 있습니다. 동일한 예약 작업이 여러 번 시작됩니다
(3) 각 페이지에 이 페이지가 포함되어 있으면 여러 개의 영구 실행 프로그램이 시작되어 불필요한 시스템 리소스를 소비하고
정상에도 영향을 미칩니다. 만약 페이지의 접근이 앞에 있다면, 페이지는 접근할 때 항상 대기 상태가 됩니다. (즉 무한 루프입니다)
ignore_user_abort(true) //Even 클라이언트가 연결 해제된 경우(예: 브라우저 종료) PHP 스크립트를 계속 실행할 수도 있습니다.
set_time_limit(0) // PHP의 기본 실행 시간은 30초입니다. (0)이면 프로그램을 무제한으로 실행할 수 있습니다.
$interval=60 *5; //5분마다 실행
$f = 'lock.txt';
if(file_exists($f) ){ //표시된 파일이 있는지 판단하고, 있으면 종료하여 반복 실행을 방지합니다.
exit();
}
do{
if(@get_file_contents($f) == ' stop'){ //정지 조건을 설정합니다. lock.txt에 stop을 쓰면 됩니다.
break;
}
@file_put_contents($f,'run');//반복해서 파일을 씁니다. 예약된 작업이 실행되었음을 표시하기 위해
....작업 코드 생략
sleep ($interval);//프로그램이 5분 동안 일시 중지됩니다
}while(true);
@ Unlock($f); //표시된 파일 삭제
?>
이것은 단지 코드로 구현하는 방법일 뿐입니다. 또 다른 방법은 Php cli 모드를 사용하여 예약된 작업을 구현하는 것입니다.
, 예를 들어 창에서 실행 -> cmd
하여 php.exe를 실행한 다음 AT를 누르고 요구 사항에 따라 입력하면 됩니다.
시스템마다 방법이 다르며 Linux도 다릅니다. 구체적으로 구현된 것은 아니지만 반드시 가능합니다