1. 程式人生 > >Windows任務計劃定時執行PHP程式碼及擴充套件

Windows任務計劃定時執行PHP程式碼及擴充套件

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

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

int ignore_user_abort ([ string $value ] )

設定客戶端斷開連線時是否中斷指令碼的執行 ,PHP以命令列指令碼執行時,當指令碼終端結束,指令碼不會被立即中止,除非設定 value 為 TRUE,否則指令碼輸出任意字元時會被中止。

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

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

windows批處理檔案

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

E:
"E:\PHP\wamp\bin\php\php5.5.12\php.exe" -f "E:\PHP\wamp\www\write.php"

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.exe

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執行程式碼

<?php
$fp = @fopen("E:/PHP/wamp/www/test.txt", "a+");
fwrite($fp, "自動播報時間:\n" . date("Y-m-d H:i:s"));
fclose($fp);

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

建立任務計劃

這個百度一下就能出很多,我測試的用的是windows7.
開始–》附件–》系統工具–》任務計劃程式
雙擊建立任務
這裡寫圖片描述
建立名稱和設定執行許可權
這裡寫圖片描述
設定好開始時間和重複任務間隔時間
這裡寫圖片描述
選擇寫好的指令碼路徑
這裡寫圖片描述
到這兒就已經建立好任務計劃程式了
下面是執行的效果
這裡寫圖片描述

相關推薦

Windows任務計劃定時執行PHP程式碼擴充套件

因為在專案中有個需求是大批量的資料自動計算後插入更新到資料庫中,為避免佔用正常資源,需要在固定時間段進行自動計算,因為專案伺服器是windows server2012,就考慮用windows平臺強大的任務計劃程式來實現。 此外在網上找了這類似問題的解決辦法後,

Windows 任務計劃 隱藏執行視窗的幾種方法

說明:【任務計劃】,有時候被大家稱作為【計劃任務】,大家習慣上都叫Windows計劃任務,實際上人家真的名字叫【任務計劃】:請看,有圖有真相 之前做專案的時候,遇到過這個不算問題的問題,不隱藏執行介面“小黑窗”,程式一樣會執行下去,但是如果有人同時在這臺電腦上操作,一不小

Windows服務器上使用bat定時執行php

保存 掛載 color website window 服務 註意 一個 con windows上和linux上有一個類似的cmd和bat文件,bat文件類似於shell文件,執行這個bat文件,就相當於依次執行裏面的命令(當然,還可以通過邏輯來實現編程),所以,我們可以

PHP定時執行程式碼

<?php ignore_user_abort();//關掉瀏覽器,PHP指令碼也可以繼續執行. set_time_limit(3000);// 通過set_time_limit(0)可以讓程式無限制的執行下去 $interval=5;// 每隔5s執行 //方法

Linux定時執行PHP

log 表示 body 分享圖片 res nth 特殊 == start 1、使用crond服務    crontab -e #編輯任務列表 crontab -l #展示任務列表 26 15 * * * /usr/local/php70/bin/php -q /dat

shell腳本定時執行php程序

text term 等等 class post 成功 分鐘 tex 單純 首先寫好你需要執行的php程序 我這裏呢就是一個PDO鏈接 寫入一個時間 然後我們寫一個shell腳本來執行這個php程序 就單純的一個執行php程序的shell就寫好了,然後咱們運行一下 好,

linux創建定時任務定時執行sql

直接 nbsp back bash $path sys AS val pan 終於弄清楚一個問題了。linux創建定時任務,定時執行sql,其中分為兩個case。 case1 sql語句較少,因此直接在 shell腳本中 寫sql語句。如下: [oracle@Oracle1

使用windows任務計劃程式自動清除C盤快取檔案

背景 由於應用程式會不斷的產生各種臨時檔案和快取檔案,我們的C盤有時候不知不覺就被填滿了,因此,配置一個自動清除快取檔案的指令碼勢在必行了。 功能 自動刪除C盤的快取和臨時檔案 隱藏執行時的CMD視窗 步驟 首先新建一個 clear-cache.bat 檔案,假設它放到 E盤根目

當網站出現502時,若重啟PHP能成功,則執行如下操作 (Linux定時執行.php檔案)

問題:我的伺服器在一段時間的時候,執行幾百個網站時出現了502錯誤,通過我的分析,時php-fpm承受不了多個網站的壓力,就出現崩潰,那麼這是就需要在網站出現502時,重啟php-fpm解決(或者你可以選擇優化php-fpm的效能) 解決思路:當網站出現502時,若重啟PHP能成功,那麼就需要在

Windows 任務計劃程式操作之起始於

起始於這個操作在windows 計劃任務的設定裡是個可選項,所以我們在操作的時候一般都忽略了他,但就因為咱們的忽略就會導致錯誤的發生。     比如我的定時任務程式中需要用到一個檔案,在讀的時候就會報未能找到檔案“C:\Windows\system3

配置Phpstorm執行php程式碼

1.首先開啟File/Settings/Languages&Frameworks 2.開啟裡面的PHP 3.開啟右側的CLI Interpreter的省略號 4.點選左上角的加號選擇下面的Local Path to Interpreter,然後選擇PHP 5.最後選擇PHP

centos和ubuntu crontab 定時執行php檔案

一 centos centos安裝crontab 1, yum install vixie-cron 2,yum install crontabs(提示已經安裝過的話,就不必安裝了) service crond status –檢視crond 狀態 service crond st

在Sublime Text3中執行PHP程式碼

二、安裝步驟 1、下載PHP的整合安裝環境WampServer,下載完成後執行exe點下一步、下一步進行安裝。 2、按win+R輸入sysdm.cpl開啟系統屬性(或通過計算機右擊->屬性->高階系統配置)選擇高階->環境變數,然後將PHP

伺服器:任務計劃定時刪除資料夾

問題 前幾天實現了任務定時備份並刪除過期sql的批處理,詳情見Mysql:任務計劃程式實現資料庫定是備份; 領導看著不錯,說把應用也備份一下,備份十天,自動刪除10天前的資料夾; 網上搜了一下,定時刪除資料夾的文章都沒有; 才有了以下的文章。 思路 獲取日期引

Win2003批處理單獨執行可以,加入任務計劃無法執行

我的環境介紹:win2003執行--\172.16.6.218 訪問另外一臺sql備份資料夾並且複製到本地E盤,並且刪除3天前的備份資料,並且使用的命令(已經可以執行)如下: @echo offcd /d "E:\WMS-bak"forfiles /p E:\WMS-bak /s /m *.bak /d -

window server 2008 批處理單獨執行可以,加入任務計劃無法執行

報錯任務計劃程式報操作員或系統管理員拒絕了請求就提示如下錯誤:任務計劃 報操作員或系統管理員拒絕了請求(0x800710E0) 解決方法: 1、建立任務  (與建立基本任務有區別) 2、安全設定 --- 本地策略 --- 安全選項,雙擊右邊的 域控制器:允許伺服器操作員計劃任務,開啟啟用即可。

Windows 10後臺程序執行python程式碼

#1.安裝服務 python PythonService.py install #2.讓服務自動啟動 python PythonService.py --startup auto install #3.啟動服務 python PythonService.py

在Sublime text3中執行php程式碼(筆記)

前面已經下載了PHP的整合安裝環境WampServer 計算機右擊->屬性->高階系統配置->選擇高階->環境變數,然後將PHP可執行程式路徑(wampServer安裝目錄下)設定到環境變數 path 即可 接著開啟CMD,輸入php -h ,檢視是否

在linux下利用crontab定時執行PHP指令碼

1、使用crontab &ndash;e編輯定時任務   內容為:   xx:xx:xx 執行一個test.php檔案   2、php檔案必須在檔案頭一行,加上直譯器路徑(就象perl做的那樣)   #!/usr/local/bin/php   PHP的

crontab 定時執行php指令碼檔案

PHP 安裝模式 首先我們必須先確認自己在LINUX Ubuntu 伺服器上php的安裝模式,以CGI 模組還是Apache模組方式安裝? 如果不確定php安裝模式,可以使用 phpinfo() 函式檢視:將<?php phpinfo(); ?> 寫在php檔