首頁  >  文章  >  後端開發  >  聊聊php定時規劃任務的實作方法

聊聊php定時規劃任務的實作方法

巴扎黑
巴扎黑原創
2016-11-29 11:45:041801瀏覽

這篇文章為大家介紹一下有關php定時計畫任務的內容,希望對你有幫助!

聊聊php定時規劃任務的實作方法

(1) 程式只要設定完排程任務之後啟動一次就行,然後程式會一直運作,直到伺服器重啟

(2)若是重複運作的話,可能不是自己想要的結果,那樣的話會啟動多個同一計劃任務

(3)若是每個頁面都include 這個頁面那就啟動多個了永久運行的程序消耗不必要係統資源,

而且也會影響頁面的正常訪問,若是放在前面的話,造訪的時候頁面會一直處於等待返回狀態(那是一個死循環)

<?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模式來實現計劃任務

如window 下用運行->cmd

運行php.exe,然後用按AT,根據裡面的要求輸入即可

不同的系統有不同的方法,linux是又不同的。

具體沒實現過,但是一定是可以行的。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn