服務(wù)器定時(shí)執(zhí)行計(jì)劃任務(wù),定時(shí)訪問頁面(windows/linux)
經(jīng)過腳本之家選的一種又簡(jiǎn)單一句話就解決了問題
explorer "http://www.dhdzp.com?opt=make"
將上面的代碼保存為dositemap.bat即可。然后添加到計(jì)劃任務(wù)
一、windows計(jì)劃任務(wù)
1、寫一個(gè)PHP程序,命名為test.php,內(nèi)容如下所示:
<?
$fp = fopen("test.txt", "a+");
fwrite($fp, date("Y-m-d H:i:s") . " 成功成功了!\n");
fclose($fp);
?>
程序大膽地寫,什么include\require盡管用,都沒問題
2、新建Bat文件,命名為test.bat,內(nèi)容如下所示:
D:\php\php.exe -q D:\website\test.php
自己寫的bat文件,定時(shí)打開頁面,并關(guān)閉ie瀏覽器
explorer.exe open=http://www.dhdzp.com Ping -n 80 127.1>nul Taskkill /f /im "iexplore.exe"
3、建立WINDOWS計(jì)劃任務(wù):
開始–>控制面板–>任務(wù)計(jì)劃–>添加任務(wù)計(jì)劃
瀏覽文件夾選擇上面的bat文件
設(shè)置時(shí)間和密碼(登陸WINDOWS的)
保存即可了。
4、over! 可以右鍵計(jì)劃任務(wù)點(diǎn)“運(yùn)行”試試
二、Linux 的腳本實(shí)現(xiàn)
一、在Crontab中使用PHP執(zhí)行腳本
就像在Crontab中調(diào)用普通的shell腳本一樣(具體Crontab用法),使用PHP程序來調(diào)用PHP腳本。
每一小時(shí)執(zhí)行myscript.php如下:
**# crontab -e** 00 * * * * /usr/local/bin/php /home/john/myscript.php
/usr/local/bin/php為PHP程序的路徑。
二、在Crontab中使用URL執(zhí)行腳本
如果你的PHP腳本可以通過URL觸發(fā),你可以使用lynx或curl或wget來配置你的Crontab。
下面的例子是使用Lynx文本瀏覽器訪問URL來每小時(shí)執(zhí)行PHP腳本。Lynx文本瀏覽器默認(rèn)使用對(duì)話方式打開URL。但是,像下面的,我們?cè)趌ynx命令行中使用-dump選項(xiàng)來把URL的輸出轉(zhuǎn)換來標(biāo)準(zhǔn)輸出。
00 * * * * lynx -dump http://www.centos.bz/myscript.php
下面的例子是使用CURL訪問URL來每5分執(zhí)行PHP腳本。Curl默認(rèn)在標(biāo)準(zhǔn)輸出顯示輸出。使用”curl -o”選項(xiàng),你也可以把腳本的輸出轉(zhuǎn)儲(chǔ)到臨時(shí)文件。
*/5 * * * * /usr/bin/curl -o temp.txt http://www.centos.bz/myscript.php
下面的例子是使用WGET訪問URL來每10分執(zhí)行PHP腳本。-q選項(xiàng)表示安靜模式?!?O temp.txt”表示輸出會(huì)發(fā)送到臨時(shí)文件。
*/10 * * * * /usr/bin/wget -q -O temp.txt http://www.centos.bz/myscript.php
三、PHP實(shí)現(xiàn)定時(shí)執(zhí)行計(jì)劃任務(wù)
使用php讓瀏覽器刷新需要解決幾個(gè)問題
1.PHP腳本執(zhí)行時(shí)間限制,默認(rèn)的是30m 解決辦法:set_time_limit();或者修改PHP.ini 設(shè)置max_execution_time時(shí)間(不推薦)
2.如果客戶端瀏覽器關(guān)閉,程序可能就被迫終止,解決辦法:ignore_user_abort即使關(guān)閉頁面依然正常執(zhí)行
3.如果程序一直執(zhí)行很有可能會(huì)消耗大量的資源,解決辦法使用sleep使用程序休眠一會(huì),然后在執(zhí)行
PHP定時(shí)執(zhí)行的代碼:
<?php
ignore_user_abort();//關(guān)掉瀏覽器,PHP腳本也可以繼續(xù)執(zhí)行.
set_time_limit(3000);// 通過set_time_limit(0)可以讓程序無限制的執(zhí)行下去
$interval=5;// 每隔5s運(yùn)行
//方法1--死循環(huán)
do{
echo '測(cè)試'.time().'<br/>';
sleep($interval);// 等待5s
}while(true);
//方法2---sleep 定時(shí)執(zhí)行
require_once './curlClass.php';//引入文件
$curl = new httpCurl();//實(shí)例化
$stime = $curl->getmicrotime();
for($i=0;$i<=10;$i++){
echo '測(cè)試'.time().'<br/>';
sleep($interval);// 等待5s
}
ob_flush();
flush();
$etime = $curl->getmicrotime();
echo '<hr>';
echo round(($etime-stime),4);//程序執(zhí)行時(shí)間
測(cè)試的時(shí)候發(fā)現(xiàn)這個(gè)效率并不是很高
總結(jié):
建議關(guān)于定時(shí)執(zhí)行任務(wù)的工作還是交給shell來做吧,比較那才是王道。
相關(guān)文章
dell 服務(wù)器安裝 centos 7.9 系統(tǒng)的方法
本文介紹了在Dell服務(wù)器上安裝CentOS 7.9系統(tǒng)的步驟,包括查看系統(tǒng)版本、設(shè)置靜態(tài)IP地址、重啟網(wǎng)絡(luò)服務(wù)等,文章還提到了如何為系統(tǒng)生成新的UUID,這些步驟為用戶提供了在Dell服務(wù)器上安裝和配置CentOS 7.9系統(tǒng)的基礎(chǔ)知識(shí)2024-11-11
基于epoll實(shí)現(xiàn) Reactor服務(wù)器的詳細(xì)過程
在我們調(diào)用epoll_create的時(shí)候會(huì)創(chuàng)建出epoll模型,這個(gè)模型也是利用文件描述類似文件系統(tǒng)的方式控制該結(jié)構(gòu),這篇文章主要介紹了基于epoll實(shí)現(xiàn) Reactor服務(wù)器的詳細(xì)過程,需要的朋友可以參考下2023-12-12
idea新建maven項(xiàng)目時(shí)速度緩慢的解決方法
下面小編就為大家分享一篇idea新建maven項(xiàng)目時(shí)速度緩慢的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2017-11-11
在CentOS6.5上使用Jexus安裝部署ASP.NET MVC4和WebApi
本文主要介紹如何在CentOS6.5安裝Jexus,并介紹其常用命令以及如何創(chuàng)建和部署ASP.NET MVC4項(xiàng)目,從而實(shí)現(xiàn)跨平臺(tái)部署。2016-05-05
IIS防盜鏈 ISAPI Rewrite圖片防盜鏈規(guī)則寫法
經(jīng)過惡補(bǔ)正則表達(dá)式相關(guān)教程并對(duì)前輩們留下的規(guī)則進(jìn)行修改后,以下ISAPI Rewrite已經(jīng)在我的服務(wù)器上正常運(yùn)作2012-03-03
寶塔面板屏蔽禁止某個(gè)IP段訪問的辦法實(shí)現(xiàn)
有時(shí)候我們會(huì)遇到各種不明IP的訪問,比如采集蜘蛛IP,那么應(yīng)該怎么解決,本文主要介紹了寶塔面板屏蔽禁止某個(gè)IP段訪問的辦法實(shí)現(xiàn),感興趣的可以了解一下2023-08-08
CentOS配置虛擬主機(jī)virtualhost使服務(wù)器支持多網(wǎng)站多域名的方法
這篇文章主要介紹了CentOS配置虛擬主機(jī)virtualhost使服務(wù)器支持多網(wǎng)站多域名的方法,涉及CentOS環(huán)境下Apache服務(wù)器虛擬主機(jī)設(shè)置技巧,需要的朋友可以參考下2016-10-10

