windows下的定時任務設定詳解

2021-07-25 21:57:25 字數 1625 閱讀 2974

【摘抄-方便自己學習】【

因為在專案中有個需求是大批量的資料自動計算後插入更新到資料庫中,為避免占用正常資源,需要在固定時間段進行自動計算,因為專案伺服器是windows server2012,就考慮用windows平台強大的任務計畫程式來實現。

此外在網上找了這類似問題的解決辦法後,還可用php的ignore_user_abort()函式,這個函式還沒使用過,php官網是這樣介紹的

int ignore_user_abort ([ string $value ] )
設定客戶端斷開連線時是否中斷指令碼的執行 ,php以命令列指令碼執行時,當指令碼終端結束,指令碼不會被立即中止,除非設定 value 為 true,否則指令碼輸出任意字元時會被中止。

個人理解就是不通過瀏覽器來執行,而是通過命令列方式執行的情況下,此函式的**塊繼續執行。在這篇博文中有具體地通過此函式的實現過程。

下面是乙個測試用的例子。

新建文字文件,編寫如下**,儲存為.bat檔案。

e:

"e:\php

\wamp

\bin

\php

\php5.5.12\php.exe" -f "e:\php

\wamp

\www

\write.php"

平時執行php**,是通過瀏覽器向伺服器請求的方式執行的,這種執行模式叫模組模式。 模組模式是以mod_php5模組的形式整合,此時mod_php5模組的作用是接收apache傳遞過來的php檔案請求,並處理這些請求,然後將處理後的結果返回給apache。如果我們在apache啟動前在其配置檔案中配置好了php模組(mod_php5), php模組通過註冊apache2的ap_hook_post_config掛鉤,在apache啟動的時候啟動此模組以接受php檔案的請求。

而我們用php.exe執行時, 便是 cli模式,這篇博文對php四種執行模式進行了詳細闡述。

php命令列執行程式php.exe的功能非常強大,在windows環境下配置系統變數path的值可以直接在dos視窗介面直接執行php指令碼檔案,這篇文章有具體配置方法。

這裡的php.exe是php安裝目錄下三個和php相關的exe檔案中的乙個,php-cgi.exe、php-win.exe

php-cgi.exe提供來作為cgi使用的,通常用來在windows環境下通過cgi方式解析php指令碼,常用於在iis下執行php**,區別是在檔案輸出所有內容之前,會自動輸出乙個下面的http頭

x-powered-by: php/5.2.5

content-type: text/html

php-win.exe也可以執行php檔案,區別是大開啟控制台,不顯示輸出內容。可以用來編寫無需顯示介面的檔案處理、網路服務等程式。

<?php

$fp = @fopen("e:/php/wamp/www/test.txt", "a+");

fclose($fp);

這裡的檔案路徑一定要是絕對路徑,因為沒有經過apache或iis這種伺服器,除了一些基於伺服器的變數不能使用的,如$_server等,還有很有可能發生各種無法預計的錯誤。

(注:這裡php頁面中出現的相對路徑發現不能用,指令碼做好不牽涉到其他的路徑)

windows下定時任務設定

linux 系統可以通過crontab e 設定定時任務,windows系統沒有crontab命令,但是windows系統有跟crontab命令比較接近的命令 schtasks 命令。設定定時任務 每分鐘執行一次 schtasks create tn crontab name tr f test.b...

windows下建立定時任務

由於之前 商實施問題,介面 存在乙個很大的弊端,就是應用程式池老是滿,會導致介面定時出錯,影響體驗。所以 商想了乙個很low的解決方案 定時重啟iis服務。今天我也操作了一下定時任務和利用windows powershell設定會話時間,所以把步驟記錄下來 1.開啟計畫任務 建立任務 其中幾個設定為...

windows 下的定時任務 原

linux 下的定時任務是crontab 以前都是linux的定時任務,這次在windows做了定時任務,簡單記錄一下 win8 跟 win10為例 控制面板 管理工具 任務計畫程式 右側建立任務 名稱自定義,建立者 我們是阿里雲的伺服器.用的是阿里雲的管理者名稱 新建觸發器 裡面東西根據自己需求更...