一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

Windows中使用計(jì)劃任務(wù)自動(dòng)執(zhí)行PHP程序?qū)嵗?/h1>

所謂任務(wù)計(jì)劃就是由計(jì)算機(jī)自動(dòng)調(diào)用用戶事先設(shè)置好的應(yīng)用程序,從而達(dá)到簡化用戶操作的目的。利用Windows 2000的任務(wù)計(jì)劃程序(相當(dāng)與*NIX下的cron程序,這里不再對其詳述),我們可以安排任何腳本、程序或文檔在最恰當(dāng)?shù)臅r(shí)候運(yùn)行,從而滿足自己的需要。下面以Windows 2000為例。

具體來說,我們?nèi)粜枥萌蝿?wù)計(jì)劃程序自動(dòng)運(yùn)行則應(yīng)執(zhí)行如下步驟:

單擊"開始"按鈕,然后依次選擇"程序"→"附件"→"系統(tǒng)工具"→"任務(wù)計(jì)劃"(或者是"設(shè)置"→"控制面板"→"任務(wù)計(jì)劃"),啟動(dòng)Windows 2000的任務(wù)計(jì)劃管理程序。
在"任務(wù)計(jì)劃"窗口中雙擊"添加任務(wù)計(jì)劃"圖標(biāo),啟動(dòng)系統(tǒng)的"任務(wù)計(jì)劃向?qū)?,然后單擊"下一步"按鈕,在給出的程序列表中選擇需要自動(dòng)運(yùn)行的應(yīng)用程序,然后單擊"下一步"按鈕。
設(shè)置適當(dāng)?shù)娜蝿?wù)計(jì)劃名稱并選擇自動(dòng)執(zhí)行這個(gè)任務(wù)的時(shí)間頻率(如每天、每星期、每月、一次性、每次啟動(dòng)計(jì)算機(jī)時(shí)、每次登錄時(shí)等),然后單擊"下一步"按鈕。
此時(shí)系統(tǒng)將會要求用戶對程序運(yùn)行的具體時(shí)間進(jìn)行設(shè)置,如幾號、幾點(diǎn)鐘、哪幾個(gè)時(shí)間段才能運(yùn)行等,我們只需根據(jù)自己的需要加以設(shè)置即可。
接下來系統(tǒng)將會要求用戶設(shè)置適當(dāng)?shù)挠脩裘懊艽a(如圖5所示),以便系統(tǒng)今后能自動(dòng)加以運(yùn)行。
最后,我們只需單擊"完成"按鈕即可將相應(yīng)任務(wù)添加到Windows
2000的任務(wù)計(jì)劃程序中,此后它就會自動(dòng)"記住"這個(gè)任務(wù),一旦系統(tǒng)時(shí)間及相關(guān)條件與用戶設(shè)置的計(jì)劃相符,它就會自動(dòng)調(diào)用用戶所指定的應(yīng)用程序,十分方
便(每次啟動(dòng)Windows 2000的時(shí)候,任務(wù)計(jì)劃程序都會自動(dòng)啟動(dòng),并在后臺運(yùn)行,確保用戶的計(jì)劃能夠按時(shí)執(zhí)行)。
現(xiàn)在我們來測試一下剛才所建的任務(wù)是否成功,鼠標(biāo)右鍵單擊"php"程序圖標(biāo)(如圖6所示),在彈出的菜單里面選擇"運(yùn)行"。一般情況下程序圖標(biāo)只要這樣
激活運(yùn)行就可以正常啟動(dòng)。如果運(yùn)行失敗可查看用戶和密碼是否設(shè)置正確,還有確定"Task
Scheduler"服務(wù)是否已啟動(dòng),本人當(dāng)初就是為了節(jié)省系統(tǒng)資源把它關(guān)掉了導(dǎo)致運(yùn)行失敗,害我找了大半天。另外也可從"系統(tǒng)日志"里查看到底是什么原
因造成運(yùn)行失敗的。

好了,講了這么多任務(wù)計(jì)劃的應(yīng)用,現(xiàn)在我們切入正題,下面將介紹兩個(gè)例子:

一、讓php定時(shí)運(yùn)行

編輯如下代碼,并保存為test.php
復(fù)制代碼 代碼如下:

<?php
$fp = @fopen("test.txt", "a+");
fwrite($fp, date("Y-m-d H:i:s") . " 讓php定時(shí)運(yùn)行吧!/n");
fclose($fp);
?>

添加一個(gè)任務(wù)計(jì)劃,在(如圖2所示)這一步輸入命令:
復(fù)制代碼 代碼如下:

D:/php4/php.exe -q D:/php4/test.php

時(shí)間設(shè)置為每隔1分鐘運(yùn)行一次,然后運(yùn)行這個(gè)任務(wù)。
現(xiàn)在我們來看看d:/php4/test.txt文件的內(nèi)容時(shí)候是否成功。如果內(nèi)容為如下所示,那么恭喜你成功了。

復(fù)制代碼 代碼如下:
2003-03-03 11:08:01 讓php定時(shí)運(yùn)行吧!
2003-03-03 11:09:02 讓php定時(shí)運(yùn)行吧!
2003-03-03 11:10:01 讓php定時(shí)運(yùn)行吧!
2003-03-03 11:11:02 讓php定時(shí)運(yùn)行吧!

二、讓MYSQL實(shí)現(xiàn)自動(dòng)備份

編輯如下代碼,并保存為backup.php,如果要壓縮可以拷貝一個(gè)rar.exe:

復(fù)制代碼 代碼如下:
<?php
if ($argc != 2 || in_array($argv[1], array('--help', '-?'))) {
?>
backup Ver 0.01, for Win95/Win98/WinNT/Win2000/WinXP on i32
Copyright (C) 2000 ptker All rights reserved.
This is free software,and you are welcome to modify and redistribute it
under the GPL license

php Shell script for the backup MySQL database.

Usage: <?php echo $argv[0]; ?> <option>

<option> can be database name you would like to backup.
With the --help, or -? options, you can get this help and exit.
<?php
} else {
$dbname = $argv[1];
$dump_tool = "c://mysql//bin//mysqldump";
$rar_tool = "d://php4//rar";
@exec("$dump_tool --opt -u user -ppassword $dbname > ./$dbname.sql");
@exec("$rar_tool a -ag_yyyy_mm_dd_hh_mm $dbname.rar $dbname.sql");
@unlink("$dbname.sql");
echo "Backup complete!";
}
?>

添加一個(gè)任務(wù)計(jì)劃,在(如圖2所示)這一步輸入命令:
復(fù)制代碼 代碼如下:

D:/php4/php.exe -q D:/php4/backup.php databasename

時(shí)間設(shè)置為每天運(yùn)行一次,然后運(yùn)行這個(gè)任務(wù)。
最后會在d:/php4/目錄下生成一個(gè)以數(shù)據(jù)庫名和當(dāng)前時(shí)間組成的rar文件。
恭喜你!大功告成了!
當(dāng)然備份方式有很多種,讀者可按照自己喜歡的去做!

以上是原著.結(jié)合本人實(shí)賤,補(bǔ)充說明如下:

如果出現(xiàn)錯(cuò)誤:


在試著設(shè)置任務(wù)帳戶信息時(shí)出現(xiàn)錯(cuò)誤
指定的錯(cuò)誤是:
0x80070005:拒絕訪問
您沒有運(yùn)行所請求的操作的權(quán)限

在上面'"4.接下來系統(tǒng)將會要求用戶設(shè)置適當(dāng)?shù)挠脩裘懊艽a,以便系統(tǒng)今后能自動(dòng)加以運(yùn)行".這里最好用"system"用戶,密碼可為空.
這個(gè)system的權(quán)限非常之高,比你的administrator還要高,所以你在運(yùn)行命令的時(shí)候千萬不要亂來,這個(gè)可是什么提示都沒有就會無條件執(zhí)行的,這個(gè)權(quán)限下你kill核心進(jìn)程都行.

上面2、添加一個(gè)任務(wù)計(jì)劃,在這一步輸入命令:

復(fù)制代碼 代碼如下:
D:/php4/php.exe -q D:/php4/test.php

正確形式應(yīng)為
復(fù)制代碼 代碼如下:
"D:/php4/php.exe" -q "D:/php4/test.php"

即路徑要用雙引號括住.

 

最近做了幾個(gè)php游戲項(xiàng)目,有棋牌游戲也有rpg游戲,其中都或多或少的需要一些定時(shí)更新信息的機(jī)制。比如棋牌游戲的玩家超時(shí)檢測。rpg游戲中用到的就更多了,怪物刷新、自動(dòng)回血、任務(wù)過期、排行榜刷新等等。因?yàn)?a href=/itjie/phpjishu/ target=_blank class=infotextkey>php沒有內(nèi)存駐留程序,所以在處理上有一些困難。

我參考了一些同行的實(shí)現(xiàn)方法,通常的做法是根據(jù)具體項(xiàng)目的需要,用c++、PythonJava等寫一個(gè)輔助程序,定時(shí)對數(shù)據(jù)庫進(jìn)行更新。但
是這樣做很麻煩。首先,這些輔助程序需要懂另外一門語言的程序員介入,勢必會增加一定開發(fā)成本和風(fēng)險(xiǎn)。第二,不同語言程序員之間聯(lián)調(diào)很麻煩,進(jìn)度很慢,由
于輔助程序與前臺之間的關(guān)系很緊密,基本上需要同時(shí)開發(fā),一起調(diào)試。

我在項(xiàng)目中采用了一種定時(shí)執(zhí)行任務(wù)的方法,自己感覺這個(gè)方案比較好,屬于一勞永逸型的,把所有代碼全都交給php這邊。

首先在數(shù)據(jù)庫中,定義一個(gè)名為task的表,里面有兩個(gè)字段 exectime 和
url。其中exectime是一個(gè)unix類型的時(shí)間,url是字符串型的。每條數(shù)據(jù)都代表一個(gè)任務(wù),具體意義是“這條任務(wù)在exectime時(shí)執(zhí)行,
執(zhí)行的地址為url”。輔助程序會每隔一秒鐘監(jiān)視一次這個(gè)表,把當(dāng)前時(shí)間對比表中每個(gè)任務(wù)的時(shí)間,如果時(shí)間達(dá)到,則請求該url,而后任務(wù)執(zhí)行完成,刪除
這條任務(wù)。如此循環(huán)往復(fù)。

這樣做的好處是php程序開發(fā)人員可以很自由的在他們想要的時(shí)間執(zhí)行他們想要執(zhí)行的網(wǎng)頁。而且這個(gè)程序只需要寫一次,放到任何類似項(xiàng)目中都可以很好的使用。

我將這個(gè)程序做成了windows服務(wù)和archlinux的Daemon,這樣就實(shí)現(xiàn)了整個(gè)項(xiàng)目的跨平臺。

補(bǔ)充內(nèi)容:

任務(wù)的開啟是這樣的,我們做了一個(gè)類似大型網(wǎng)游的服務(wù)器開關(guān)界面,登錄游戲后臺后,到服務(wù)器控制頁面,可以查看當(dāng)前服務(wù)器的運(yùn)行狀態(tài),可以開啟或者關(guān)閉服務(wù)器。開啟服務(wù)器則是把相關(guān)任務(wù)插入到任務(wù)列表中,關(guān)閉服務(wù)器是把任務(wù)列表清空。是人工形式的。


任務(wù)的重復(fù)開啟,因?yàn)檫@些任務(wù)都是由php插入到任務(wù)表中去的,而且任務(wù)表中的每條任務(wù)都是執(zhí)行一次就由輔助程序刪除的,所以每個(gè)任務(wù)只能執(zhí)行一次。如果有任務(wù)需要循環(huán)執(zhí)行,那么就只能是通過在執(zhí)行這個(gè)任務(wù)(即任務(wù)的url)的php代碼里面,再把他自己重新插入到任務(wù)列表中去。


任務(wù)的超時(shí),任務(wù)超時(shí)分為兩種,數(shù)據(jù)表中,任務(wù)的執(zhí)行之間超時(shí),一種是請求該任務(wù)頁面超時(shí)。第一種情況不會發(fā)生,因?yàn)檩o助程序每次都執(zhí)行小于等于當(dāng)前 時(shí)間的所有任務(wù)。第二種情況,輔助程序會自動(dòng)判斷這個(gè)頁面的訪問是否成功,如果返回服務(wù)器錯(cuò)誤或無法連接等,就保留此任務(wù),不刪除,等到下次循環(huán)時(shí)再嘗試 執(zhí)行。

php技術(shù)Windows中使用計(jì)劃任務(wù)自動(dòng)執(zhí)行PHP程序?qū)嵗?/a>,轉(zhuǎn)載需保留來源!

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

主站蜘蛛池模板: 午夜激情视频 | 日韩久久一区二区三区 | 在线观看国产福利 | 怡红院视频在线观看最新 | 91精品视频观看 | 亚洲第一黄色网址 | 4se视频在线观看 | 亚洲精品人成网在线播放影院 | 欧美综合色另类图片区 | wwwxx在线观看| 一区二区美女视频 | 日韩美女一级毛片 | 九一国产精品 | 日韩欧美在线播放视频 | 久久国产精品超级碰碰热 | 美国毛片亚洲社区在线观看 | 日本中文字幕一区二区有码在线 | 黄免费看 | 国产不卡一区二区三区免费视 | 国产中的精品一区的 | 国产精彩视频在线观看 | 在线精品国产第一页 | 亚洲一区中文字幕 | 成人精品一区二区激情 | 国产一区二区高清在线 | 99热99re8国产在线播放 | 视频三区精品中文字幕 | 黄网站视频观看免费 | 免费91最新地址永久入口 | 高清一区二区三区免费 | 久久青青91费线频观青 | 91久久亚洲最新一本 | 国产精品成人亚洲 | 久久久91精品国产一区二区三区 | 全部免费69堂在线视频 | 成年美女黄网站色大片视频 | 亚洲欧洲免费视频 | 91精品国产91热久久久久福利 | 91正在 播放 | 激情视频在线播放 | 国产精品网站在线进入 |