이번 글은 PHP 예약 작업 내용을 소개하는 글입니다. 도움이 되셨으면 좋겠습니다!
(1) 예약된 작업을 설정한 후 한 번만 프로그램을 시작하면 서버가 다시 시작될 때까지 프로그램이 계속 실행됩니다.
(2) 반복적으로 실행되는 경우 원하는 결과가 아닐 수 있습니다. 이 경우 동일한 예약 작업이 여러 개 시작됩니다.
(3) 모든 페이지에 이 페이지가 포함되어 있으면 여러 개가 영구적으로 실행됩니다. 프로그램이 시작되어 불필요한 시스템 리소스를 소비합니다.
도 페이지의 정상적인 액세스에 영향을 미치므로 페이지는 액세스 시 항상 반환을 대기하게 됩니다(즉, 무한 루프).
<?php ignore_user_abort(true); //即使Client断开(如关掉浏览器),PHP脚本也可以继续执行. set_time_limit(0); // 执行时间为无限制,php默认的执行时间是30秒,通过set_time_limit(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 모드를 사용하여 예약된 작업을 구현하는 것입니다.
예를 들어 run->cmd를 사용합니다.
window 아래에서 php.exe를 실행한 다음 요구 사항에 따라 AT를 누르고 입력합니다.
시스템마다 방법이 다르고 Linux도 다릅니다.
구체적으로 구현된 것은 아니지만 확실히 가능합니다.