>  기사  >  백엔드 개발  >  PHP에서 예약된 작업을 구현하는 방법에 대해 이야기해 보겠습니다.

PHP에서 예약된 작업을 구현하는 방법에 대해 이야기해 보겠습니다.

巴扎黑
巴扎黑원래의
2016-11-29 11:45:041801검색

이번 글은 PHP 예약 작업 내용을 소개하는 글입니다. 도움이 되셨으면 좋겠습니다!

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 = &#39;lock.txt&#39;;
if(file_exists($f)){ //判断标记文件是否存在,存在就退出,防止重复运行
    exit();
}
do{
    if(@get_file_contents($f) == &#39;stop&#39;){ //设置停止条件, 停止的时候只要向 lock.txt 写入 stop
        break;
    }
    @file_put_contents($f,&#39;run&#39;);//重复写入一个文件,标志已经运行计划任务
    ....省略任务代码
    sleep($interval);//程序暂停5分钟
}while(true);
@unlock($f); //删除标记文件
?>

이것은 단지 코드로 구현하는 방법일 뿐입니다. 또 다른 방법은 Php cli 모드를 사용하여 예약된 작업을 구현하는 것입니다.

예를 들어 run->cmd를 사용합니다.

window 아래에서 php.exe를 실행한 다음 요구 사항에 따라 AT를 누르고 입력합니다.

시스템마다 방법이 다르고 Linux도 다릅니다.

구체적으로 구현된 것은 아니지만 확실히 가능합니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.