php實現計劃任務,php定時任務框架

本文目錄一覽:

php discuz的定時任務是什麼原理怎麼實現的?求高手解答

php中定時計劃任務的實現原理:

當 PHP 腳本正常地運行 NORMAL 狀態時,連接為有效。當遠程客戶端中斷連接時,ABORTED 狀態的標記將會被打開。遠程客戶端連接的中斷通常是由用戶點擊 STOP 按鈕導致的。當連接時間超過 PHP 的時限時,TIMEOUT 狀態的標記將被打開。

示例代碼:

?php

ignore_user_abort(true);set_time_limit(0);

date_default_timezone_set(‘PRC’); // 切換到中國的時間

$run_time = strtotime(‘+1 day’); // 定時任務第一次執行的時間是明天的這個時候

$interval = 3600*12; // 每12個小時執行一次

if(!file_exists(dirname(__FILE__).’/cron-run’)) exit(); // 在目錄下存放一個cron-run文件,如果這個文件不存在,說明已經在執行過程中了,該任務就不能再激活,執行第二次,否則這個文件被多次訪問的話,伺服器就要崩潰掉了

do {

if(!file_exists(dirname(__FILE__).’/cron-switch’)) break; // 如果不存在cron-switch這個文件,就停止執行,這是一個開關的作用

$gmt_time = microtime(true); // 當前的運行時間,精確到0.0001秒

$loop = isset($loop) $loop ? $loop : $run_time – $gmt_time; // 這裡處理是為了確定還要等多久才開始第一次執行任務,$loop就是要等多久才執行的時間間隔

$loop = $loop 0 ? $loop : 0;

if(!$loop) break; // 如果循環的間隔為零,則停止

sleep($loop);

// …

// 執行某些代碼

// …

@unlink(dirname(__FILE__).’/cron-run’); // 這裡就是通過刪除cron-run來告訴程序,這個定時任務已經在執行過程中,不能再執行一個新的同樣的任務

$loop = $interval;

} while(true);

PHP計劃任務、定時執行任務的實現代碼

不知道能程序的性能會不會影響很大!

複製代碼

代碼如下:

ignore_user_abort();//關掉瀏覽器,PHP腳本也可以繼續執行.

set_time_limit(0);//

通過set_time_limit(0)可以讓程序無限制的執行下去

$interval=60*30;//

每隔半小時運行

do{

//這裡是你要執行的代碼

sleep($interval);//

等待5分鐘

}while(true);

Windows中使用計劃任務自動執行PHP程序實例

所謂任務計劃就是由計算機自動調用用戶事先設置好的應用程序,從而達到簡化用戶操作的目的。利用Windows

2000的任務計劃程序(相當與*NIX下的cron程序,這裡不再對其詳述),我們可以安排任何腳本、程序或文檔在最恰當的時候運行,從而滿足自己的需要。下面以Windows

2000為例。

具體來說,我們若需利用任務計劃程序自動運行則應執行如下步驟:

單擊”開始”按鈕,然後依次選擇”程序”→”附件”→”系統工具”→”任務計劃”(或者是”設置”→”控制面板”→”任務計劃”),啟動Windows

2000的任務計劃管理程序。

在”任務計劃”窗口中雙擊”添加任務計劃”圖標,啟動系統的”任務計劃嚮導”,然後單擊”下一步”按鈕,在給出的程序列表中選擇需要自動運行的應用程序,然後單擊”下一步”按鈕。

設置適當的任務計劃名稱並選擇自動執行這個任務的時間頻率(如每天、每星期、每月、一次性、每次啟動計算機時、每次登錄時等),然後單擊”下一步”按鈕。

此時系統將會要求用戶對程序運行的具體時間進行設置,如幾號、幾點鐘、哪幾個時間段才能運行等,我們只需根據自己的需要加以設置即可。

接下來系統將會要求用戶設置適當的用戶名及密碼(如圖5所示),以便系統今後能自動加以運行。

最後,我們只需單擊”完成”按鈕即可將相應任務添加到Windows

2000的任務計劃程序中,此後它就會自動”記住”這個任務,一旦系統時間及相關條件與用戶設置的計劃相符,它就會自動調用用戶所指定的應用程序,十分方

便(每次啟動Windows

2000的時候,任務計劃程序都會自動啟動,並在後台運行,確保用戶的計劃能夠按時執行)。

現在我們來測試一下剛才所建的任務是否成功,滑鼠右鍵單擊”php”程序圖標(如圖6所示),在彈出的菜單裡面選擇”運行”。一般情況下程序圖標只要這樣

激活運行就可以正常啟動。如果運行失敗可查看用戶和密碼是否設置正確,還有確定”Task

Scheduler”服務是否已啟動,本人當初就是為了節省系統資源把它關掉了導致運行失敗,害我找了大半天。另外也可從”系統日誌”里查看到底是什麼原

因造成運行失敗的。

好了,講了這麼多任務計劃的應用,現在我們切入正題,下面將介紹兩個例子:

一、讓PHP定時運行

編輯如下代碼,並保存為test.php:

複製代碼

代碼如下:

?php

$fp

=

@fopen(“test.txt”,

“a+”);

fwrite($fp,

date(“Y-m-d

H:i:s”)

.

讓PHP定時運行吧!\n”);

fclose($fp);

?

原創文章,作者:LUME,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/148444.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
LUME的頭像LUME
上一篇 2024-11-03 15:16
下一篇 2024-11-03 15:16

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Ojlat:一款快速開發Web應用程序的框架

    Ojlat是一款用於快速開發Web應用程序的框架。它的主要特點是高效、易用、可擴展且功能齊全。通過Ojlat,開發人員可以輕鬆地構建出高質量的Web應用程序。本文將從多個方面對Oj…

    編程 2025-04-29
  • Zlios——一個多功能的開發框架

    你是否在開發過程中常常遇到同樣的問題,需要不斷去尋找解決方案?你是否想要一個多功能、易於使用的開發框架來解決這些問題?那麼,Zlios就是你需要的框架。 一、簡介 Zlios是一個…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29
  • agavi開發框架

    Agavi是一個基於MVC模式的Web應用程序開發框架,以REST和面向資源的設計為核心思想。本文章將從Agavi的概念、優點、使用方法和實例等方面進行詳細介紹。 一、概念 Aga…

    編程 2025-04-29
  • Python unittest框架用法介紹

    Python unittest框架是Python自帶的一種測試框架,可以用來編寫並運行測試用例。在本文中,我們將從以下幾個方面詳細介紹Python unittest框架的使用方法和…

    編程 2025-04-29
  • com.alipay.sofa.bolt框架

    com.alipay.sofa.bolt框架是一款高性能、輕量級、可擴展的RPC框架。其廣泛被應用於阿里集團內部服務以及阿里雲上的服務。該框架通過NIO支持高並發,同時還內置了多種…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • Saturn 定時任務用法介紹

    本文將從以下幾個方面對Saturn定時任務進行詳細的闡述: 一、Saturn 定時任務簡介 Saturn是一個分散式任務調度系統,支持在線添加、修改定時任務,支持多種任務類型,如J…

    編程 2025-04-29
  • Django框架:從簡介到項目實戰

    本文將從Django的介紹,以及如何搭建Django環境開始,逐步深入到Django模型、視圖、模板、表單,最後通過一個小型項目實戰,進行綜合性的應用,讓讀者獲得更深入的學習。 一…

    編程 2025-04-28

發表回復

登錄後才能評論