最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php中定時(shí)計(jì)劃任務(wù)的實(shí)現(xiàn)原理

 更新時(shí)間:2013年01月08日 14:30:24   作者:  
php中定時(shí)計(jì)劃任務(wù)的實(shí)現(xiàn)原理,需要的朋友可以參考下
根據(jù)php手冊(cè)簡(jiǎn)單介紹一些相關(guān)的知識(shí):

1.連接處理:

在 PHP 內(nèi)部,系統(tǒng)維護(hù)著連接狀態(tài),其狀態(tài)有三種可能的情況:

0 - NORMAL(正常)
1 - ABORTED(異常退出)
2 - TIMEOUT(超時(shí))

當(dāng) PHP 腳本正常地運(yùn)行 NORMAL 狀態(tài)時(shí),連接為有效。當(dāng)遠(yuǎn)程客戶(hù)端中斷連接時(shí),ABORTED 狀態(tài)的標(biāo)記將會(huì)被打開(kāi)。遠(yuǎn)程客戶(hù)端連接的中斷通常是由用戶(hù)點(diǎn)擊 STOP 按鈕導(dǎo)致的。當(dāng)連接時(shí)間超過(guò) PHP 的時(shí)限時(shí),TIMEOUT 狀態(tài)的標(biāo)記將被打開(kāi)。

可以決定腳本是否需要在客戶(hù)端中斷連接時(shí)退出。有時(shí)候讓腳本完整地運(yùn)行會(huì)帶來(lái)很多方便,即使沒(méi)有遠(yuǎn)程瀏覽器接受腳本的輸出。默認(rèn)的情況是當(dāng)遠(yuǎn)程客戶(hù)端連接中斷時(shí)腳本將會(huì)退出。該處理過(guò)程可由 php.ini 的 ignore_user_abort 或由 Apache .conf 設(shè)置中對(duì)應(yīng)的"php_value ignore_user_abort"以及 ignore_user_abort() 函數(shù)來(lái)控制。如果沒(méi)有告訴 PHP 忽略用戶(hù)的中斷,腳本將會(huì)被中斷,除非通過(guò) register_shutdown_function() 設(shè)置了關(guān)閉觸發(fā)函數(shù)。通過(guò)該關(guān)閉觸發(fā)函數(shù),當(dāng)遠(yuǎn)程用戶(hù)點(diǎn)擊 STOP 按鈕后,腳本再次嘗試輸出數(shù)據(jù)時(shí),PHP 將會(huì)檢測(cè)到連接已被中斷,并調(diào)用關(guān)閉觸發(fā)函數(shù)。

腳本也有可能被內(nèi)置的腳本計(jì)時(shí)器中斷。默認(rèn)的超時(shí)限制為 30 秒。這個(gè)值可以通過(guò)設(shè)置 php.ini 的 max_execution_time 或 Apache .conf 設(shè)置中對(duì)應(yīng)的"php_value max_execution_time"參數(shù)或者 set_time_limit() 函數(shù)來(lái)更改。當(dāng)計(jì)數(shù)器超時(shí)的時(shí)候,腳本將會(huì)類(lèi)似于以上連接中斷的情況退出,先前被注冊(cè)過(guò)的關(guān)閉觸發(fā)函數(shù)也將在這時(shí)被執(zhí)行。在該關(guān)閉觸發(fā)函數(shù)中,可以通過(guò)調(diào)用 connection_status() 函數(shù)來(lái)檢查超時(shí)是否導(dǎo)致關(guān)閉觸發(fā)函數(shù)被調(diào)用。如果超時(shí)導(dǎo)致了關(guān)閉觸發(fā)函數(shù)的調(diào)用,該函數(shù)將返回 2。

需要注意的一點(diǎn)是 ABORTED 和 TIMEOUT 狀態(tài)可以同時(shí)有效。這在告訴 PHP 忽略用戶(hù)的退出操作時(shí)是可能的。PHP 將仍然注意用戶(hù)已經(jīng)中斷了連接但腳本仍然在運(yùn)行的情況。如果到了運(yùn)行的時(shí)間限制,腳本將被退出,設(shè)置過(guò)的關(guān)閉觸發(fā)函數(shù)也將被執(zhí)行。在這時(shí)會(huì)發(fā)現(xiàn)函數(shù) connection_status() 返回 3。

2.相關(guān)函數(shù):

int ignore_user_abort ( [bool setting] )
This function sets whether a client disconnect should cause a script to be aborted. It will return the previous setting and can be called without an argument to not change the current setting and only return the current setting.

int connection_aborted ( void )
Returns TRUE if client disconnected.

int connection_status ( void )
Returns the connection status bitfield.

為了定時(shí)更新某一文件,需要程序自動(dòng)運(yùn)行,從網(wǎng)上搜到了兩種方法:ignore_user_abort() 和crontab

ignore_user_abort()函數(shù)搭配set_time_limit(0)和sleep($interval)即可實(shí)現(xiàn)程序自動(dòng)運(yùn)行更新,下面是一個(gè)實(shí)例
復(fù)制代碼 代碼如下:

ignore_user_abort(); //即使Client斷開(kāi)(如關(guān)掉瀏覽器),PHP腳本也可以繼續(xù)執(zhí)行.
set_time_limit(0); // 執(zhí)行時(shí)間為無(wú)限制,php默認(rèn)的執(zhí)行時(shí)間是30秒,通過(guò)set_time_limit(0)可以讓程序無(wú)限制的執(zhí)行下去
$interval=60*5; // 每隔5分鐘運(yùn)行
do{
$fp = fopen('test.txt','a');
fwrite($fp,'test');
fclose($fp);
sleep($interval); // 等待5分鐘
}while(true);

只要運(yùn)行上面的頁(yè)面,然后關(guān)掉,程序就會(huì)一直運(yùn)行下去。

Linux 下有種更簡(jiǎn)單的方法,就是crontab命令

crontab命令的功能是在一定的時(shí)間間隔調(diào)度一些命令的執(zhí)行。
crontab 使用方法: crontab [ -e | -l | -r ] 文件名 -e:編輯任務(wù) -l:顯示任務(wù)信息 -r:刪除定時(shí)執(zhí)行任務(wù)信息

crontab的格式:
* * * * * Command
分 時(shí) 日 月 星期 要運(yùn)行的命令

crontab的例子:

*/5 * * * * lynx http://m.fzitv.net
每5分鐘訪(fǎng)問(wèn)一次 m.fzitv.net

0 8 * * * lynx http://m.fzitv.net
每天早上8點(diǎn)訪(fǎng)問(wèn) m.fzitv.net

0 10 6 * 1-5 lynx http://m.fzitv.net
每個(gè)月的6號(hào)和每個(gè)禮拜的星期一到星期五的早上10點(diǎn)訪(fǎng)問(wèn) m.fzitv.net

0 5 7 8 * lynx http://m.fzitv.net
8月7日早上5點(diǎn)訪(fǎng)問(wèn) m.fzitv.net

上面幾個(gè)特殊的意思:
"*"代表所有的取值范圍內(nèi)的數(shù)字,"/"代表每的意思,"*/5"表示每5個(gè)單位,"-"代表從某個(gè)數(shù)字到某個(gè)數(shù)字,","分開(kāi)幾個(gè)離散的數(shù)字。

相關(guān)文章

  • php下保存遠(yuǎn)程圖片到本地的辦法

    php下保存遠(yuǎn)程圖片到本地的辦法

    有些時(shí)候我們看到網(wǎng)絡(luò)上有一些漂亮的圖片,而又不想手動(dòng)去保存下來(lái),尤其是大量的這樣的圖片,那這個(gè)時(shí)候我們需要寫(xiě)一段程序來(lái)幫助我們完成這個(gè)工作。
    2010-08-08
  • PHP共享內(nèi)存用法實(shí)例分析

    PHP共享內(nèi)存用法實(shí)例分析

    這篇文章主要介紹了PHP共享內(nèi)存用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了基于共享內(nèi)存實(shí)現(xiàn)進(jìn)程間通信的技巧,需要的朋友可以參考下
    2016-02-02
  • php讀取mysql中文數(shù)據(jù)出現(xiàn)亂碼的解決方法

    php讀取mysql中文數(shù)據(jù)出現(xiàn)亂碼的解決方法

    以下是對(duì)php讀取mysql中文數(shù)據(jù)出現(xiàn)亂碼問(wèn)題的解決方法進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下
    2013-08-08
  • PHP連續(xù)簽到功能實(shí)現(xiàn)方法詳解

    PHP連續(xù)簽到功能實(shí)現(xiàn)方法詳解

    這篇文章主要介紹了PHP連續(xù)簽到功能實(shí)現(xiàn)方法,結(jié)合實(shí)例形式詳細(xì)分析了PHP結(jié)合mysql數(shù)據(jù)庫(kù)實(shí)現(xiàn)連續(xù)簽到功能相關(guān)操作技巧,需要的朋友可以參考下
    2019-12-12
  • php實(shí)現(xiàn)設(shè)計(jì)模式中的單例模式詳解

    php實(shí)現(xiàn)設(shè)計(jì)模式中的單例模式詳解

    這篇文章主要介紹了php實(shí)現(xiàn)設(shè)計(jì)模式中的單例模式詳解,本文詳細(xì)講解了php中的單例模式,并給出了代碼實(shí)例,需要的朋友可以參考下
    2014-10-10
  • 解析thinkphp基本配置 convention.php

    解析thinkphp基本配置 convention.php

    本篇文章是對(duì)thinkphp基本配置 convention.php進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • PHP foreach引用變量導(dǎo)致的問(wèn)題及其解決方案

    PHP foreach引用變量導(dǎo)致的問(wèn)題及其解決方案

    在 PHP 中,foreach 是用于遍歷數(shù)組的重要結(jié)構(gòu),然而,在某些情況下,使用 foreach 的 引用變量(&) 可能會(huì)導(dǎo)致意想不到的錯(cuò)誤,尤其是在不同版本的 PHP 環(huán)境下,本文將詳細(xì)分析 foreach 在不同 PHP 版本中的行為變化,深入剖析引用帶來(lái)的問(wèn)題,并提供最佳解決方案
    2025-02-02
  • php創(chuàng)建、獲取cookie及基礎(chǔ)要點(diǎn)分析

    php創(chuàng)建、獲取cookie及基礎(chǔ)要點(diǎn)分析

    這篇文章主要介紹了php創(chuàng)建、獲取cookie及基礎(chǔ)要點(diǎn),實(shí)例分析了php操作cookie的技巧,需要的朋友可以參考下
    2015-01-01
  • php定時(shí)刪除文件夾下文件(清理緩存文件)

    php定時(shí)刪除文件夾下文件(清理緩存文件)

    有的時(shí)候網(wǎng)站緩存文件夾里生成的臨時(shí)文件越來(lái)越多,而長(zhǎng)時(shí)間不清理就會(huì)造成文件夾下有上萬(wàn)個(gè)緩存文件,可能會(huì)使ftp工具多無(wú)法進(jìn)入其文件夾。使臨時(shí)文件無(wú)法刪除
    2013-01-01
  • php設(shè)計(jì)模式之簡(jiǎn)單工廠(chǎng)模式詳解

    php設(shè)計(jì)模式之簡(jiǎn)單工廠(chǎng)模式詳解

    這篇文章主要介紹了php設(shè)計(jì)模式的簡(jiǎn)單工廠(chǎng)模式,又稱(chēng)為靜態(tài)工廠(chǎng)方法模式,是一種重要的PHP設(shè)計(jì)模式,需要的朋友可以參考下
    2014-09-09

最新評(píng)論

白银市| 马鞍山市| 门头沟区| 东山县| 洪泽县| 溧水县| 镇赉县| 长宁区| 永济市| 姚安县| 清新县| 湘潭县| 凤城市| 炉霍县| 汕头市| 平果县| 区。| 平和县| 灌云县| 绥江县| 陆良县| 沧州市| 贡嘎县| 衡南县| 简阳市| 樟树市| 准格尔旗| 繁昌县| 宜丰县| 武陟县| 长葛市| 阿拉善右旗| 仁布县| 六枝特区| 永胜县| 新龙县| 施甸县| 舒兰市| 遵化市| 百色市| 云林县|