国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php定時計劃任務的實現方法

2024-05-04 21:53:57
字體:
來源:轉載
供稿:網友

   我在uchome 中 分析到, uchome是這樣做的

  1. 把所有的計劃任務存放到數據庫

  2. 每次用戶進行操作或打開頁面的時候都按排序執行一條計劃任務. 也就是輪番判斷,時間到了的, 就在用戶進程中執行.

  uchome的計劃任務代碼在 ./source/function_cron.php

  上面只自己分析uchome代碼關于計劃任務大概的結果, 拋磚引玉. 希望誰有好的方法拿出來共享.

  ignore_user_abort()

  我前一段時間徹底研究過計劃任務,認為計劃任務的思路很多,但最適合Web的還是觸發式的,就是類似于DZ和PHPWind的,似乎大多數web應用也都是這么做的,再說幾種其他的供參考

  1,為了提供穩定的觸發,用crontab+wget或者ab提供定時訪問

  2,nohup + php寫守護程序

  3,直接用php寫個死循環還提供觸發,這時需要用緩存或者數據庫來協助推出循環,還有必須用sleep或者usleep控制觸發頻率

  4,crontab+php

  5,web觸發方式,這也有區別,一種是定時觸發,一種是定周期觸發,DZ和PHPWind都是定時觸發,我最后采用的是定周期觸發

  具體的實現思路 很容易想,就不多說了

  自己有主機肯定用crontab來執行命令行PHP

  沒有只能寫在代碼中了

  用crontab會比較好, 如果用循環的話, 最好也要把循環和具體處理程序分開, 不然內存會一直增加.

  今天一不小心在php手冊上發現了這個函數-ignore_user_abort,這個函數可以幫助我們實現像linux中的cron一樣實現計劃任務,下面一起來看下該如何來實現。

  首先看下php手冊對這個函數的解釋

  Description

  int ignore_user_abort ([ bool $setting ] )

  Sets whether a client disconnect should cause a script to be aborted.

  也就是說無論客戶端是否關閉瀏覽器,下面的程序都會執行.

  再看下其參數

  Parameters

  setting

  If not set, the function will only return the current setting.

  這個函數接受一個參數,來決定是否啟用ignore_user_abort的功能。

  再看其返回值:

  Return Values

  Returns the previous setting, as a boolean.

  這里說返回前一次的設置,并且是bool值得,經過我的測試,這個說法是不對的,返回的明明是int型的,不相信的話大家可以寫一個php文件來測試下。

  說了這么多了,到底該如何用php的這個函數實現計劃任務呢?還跌借助另外一個函數,這個函數是set_time_limit,通過set_time_limit0)可以設置程序的運行時間為無限制,php默認的運行時間是30秒,通過set_time_limit(0)可以讓程序無限制的執行下去。在程序執行之前加上ignore_user_abort(1)和set_time_limit(0)即可以了,最終程序該如何寫呢?給大家一個例子。

代碼如下:<?phpignore_user_abort(); // run script in backgroundset_time_limit(0); // run script forever$interval=30; // do every 15 minutes…do{$fp = fopen(‘text3.txt','a');fwrite($fp,'test');fclose($fp);sleep($interval); // wait 15 minutes}while(true);?>  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泾源县| 大城县| 张家港市| 建始县| 南平市| 会东县| 汉川市| 广河县| 蚌埠市| 顺义区| 磴口县| 额尔古纳市| 甘谷县| 中卫市| 应城市| 盐池县| 丽水市| 体育| 绥宁县| 盐山县| 通城县| 平安县| 柘荣县| 威信县| 海兴县| 通榆县| 博罗县| 哈巴河县| 孟津县| 元谋县| 荣成市| 治县。| 社会| 和硕县| 南溪县| 廊坊市| 外汇| 玛曲县| 海丰县| 南溪县| 政和县|