天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

php定時(shí)計(jì)劃任務(wù)的實(shí)現(xiàn)方法詳解

我在uchome 中 分析到, uchome是這樣做的
1. 把所有的計(jì)劃任務(wù)存放到數(shù)據(jù)庫(kù)
2. 每次用戶進(jìn)行操作或打開頁(yè)面的時(shí)候都按排序執(zhí)行一條計(jì)劃任務(wù). 也就是輪番判斷,時(shí)間到了的, 就在用戶進(jìn)程中執(zhí)行.
uchome的計(jì)劃任務(wù)代碼在 ./source/function_cron.php
上面只自己分析uchome代碼關(guān)于計(jì)劃任務(wù)大概的結(jié)果, 拋磚引玉. 希望誰(shuí)有好的方法拿出來(lái)共享.
ignore_user_abort()
我前一段時(shí)間徹底研究過(guò)計(jì)劃任務(wù),認(rèn)為計(jì)劃任務(wù)的思路很多,但最適合Web的還是觸發(fā)式的,就是類似于DZ和phpWind的,似乎大多數(shù)web應(yīng)用也都是這么做的,再說(shuō)幾種其他的供參考
1,為了提供穩(wěn)定的觸發(fā),用crontab+wget或者ab提供定時(shí)訪問(wèn)
2,nohup + php寫守護(hù)程序
3,直接用php寫個(gè)死循環(huán)還提供觸發(fā),這時(shí)需要用緩存或者數(shù)據(jù)庫(kù)來(lái)協(xié)助推出循環(huán),還有必須用sleep或者usleep控制觸發(fā)頻率
4,crontab+php
5,web觸發(fā)方式,這也有區(qū)別,一種是定時(shí)觸發(fā),一種是定周期觸發(fā),DZ和phpWind都是定時(shí)觸發(fā),我最后采用的是定周期觸發(fā)
具體的實(shí)現(xiàn)思路 很容易想,就不多說(shuō)了
自己有主機(jī)肯定用crontab來(lái)執(zhí)行命令行php
沒有只能寫在代碼中了
用crontab會(huì)比較好, 如果用循環(huán)的話, 最好也要把循環(huán)和具體處理程序分開, 不然內(nèi)存會(huì)一直增加.

今天一不小心在php手冊(cè)上發(fā)現(xiàn)了這個(gè)函數(shù)-ignore_user_abort,這個(gè)函數(shù)可以幫助我們實(shí)現(xiàn)像linux中的cron一樣實(shí)現(xiàn)計(jì)劃任務(wù),下面一起來(lái)看下該如何來(lái)實(shí)現(xiàn)。
首先看下php手冊(cè)對(duì)這個(gè)函數(shù)的解釋
Description

int ignore_user_abort ([ bool $setting ] )
Sets whether a client disconnect should cause a script to be aborted.

也就是說(shuō)無(wú)論客戶端是否關(guān)閉瀏覽器,下面的程序都會(huì)執(zhí)行.
再看下其參數(shù)
Parameters

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

這個(gè)函數(shù)接受一個(gè)參數(shù),來(lái)決定是否啟用ignore_user_abort的功能。
再看其返回值:

Return Values
Returns the previous setting, as a boolean.

這里說(shuō)返回前一次的設(shè)置,并且是bool值得,經(jīng)過(guò)我的測(cè)試,這個(gè)說(shuō)法是不對(duì)的,返回的明明是int型的,不相信的話大家可以寫一個(gè)php文件來(lái)測(cè)試下。
說(shuō)了這么多了,到底該如何用php的這個(gè)函數(shù)實(shí)現(xiàn)計(jì)劃任務(wù)呢?還跌借助另外一個(gè)函數(shù),這個(gè)函數(shù)是set_time_limit,通過(guò)set_time_limit0)可以設(shè)置程序的運(yùn)行時(shí)間為無(wú)限制,php默認(rèn)的運(yùn)行時(shí)間是30秒,通過(guò)set_time_limit(0)可以讓程序無(wú)限制的執(zhí)行下去。在程序執(zhí)行之前加上ignore_user_abort(1)和set_time_limit(0)即可以了,最終程序該如何寫呢?給大家一個(gè)例子。
復(fù)制代碼 代碼如下:
<?php
ignore_user_abort(); // run script in background
set_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);
?>

php技術(shù)php定時(shí)計(jì)劃任務(wù)的實(shí)現(xiàn)方法詳解,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: a色毛片免费视频 | 一区二区三区无码被窝影院 | 亚洲一区二区影院 | 最新精品学生国产自在现拍 | 欧美另类z0z000高清 | 男人J进入女人P免费狂躁 | 青青草伊人网 | 69日本xxⅹxxxxx18 | 黄色软件色多多 | 影音先锋av天堂 | 超碰在线视频公开 | 日本浴室日产在线系列 | 男女无遮挡吃奶gift动态图 | 国产69精品久久久久乱码 | 多肉np一女多男高h爽文现代 | 国产成人在线视频 | 久久精品av| 谁有成人网站地址 | 殴美黄色网 | 亚洲AV精品无码喷水直播间 | CHINSEFUCKGAY无套| 久久99热成人精品国产 | 忘忧草在线社区WWW日本-韩国 | 亚洲国产在线午夜视频无 | 欧美videos人牛交 | 秘密教学26我们在做一次吧免费 | 亚洲精品天堂无码中文字幕影院 | 久久99re7在线视频精品 | 国产中的精品AV一区二区 | 高跟丝袜岳第一次 | 领导边摸边吃奶边做爽在线观看 | 日韩人妻双飞无码精品久久 | 国产精品VIDEOSSEX久久发布 | caoporn超碰在线 | 小泽玛丽av无码观看 | 日本高清无人区影院 | 97人摸人人澡人人人超一碰 | 欧美18videosex| 一个人在线观看免费视频 | 欧美性爱 先锋影音 | 一级特黄视频 |