欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP cron中的批處理

 更新時間:2008年09月16日 10:41:35   作者:  
如果 Web 應用程序中的一個特性需要超過 1 秒或 2 秒才能完成,那么應該怎么辦?需要某種離線處理解決方案。學習幾種對 PHP 應用程序中長時間運行的作業(yè)進行離線服務的方法。
大型的連鎖店有一個大問題。每天,在每家商店會發(fā)生數(shù)千次交易。公司執(zhí)行官希望對這些數(shù)據(jù)進行挖掘。哪些產(chǎn)品賣得好?哪些不好?有機產(chǎn)品在哪里賣得好?冰淇淋的銷售情況怎么樣?
為了捕捉這些數(shù)據(jù),組織必須將所有事務性數(shù)據(jù)裝載進一個數(shù)據(jù)模型,以便更適合生成公司所需的報告類型。但是,這很花費時間,而且隨著連鎖規(guī)模的增長,處理一天的數(shù)據(jù)可能要花費一天以上的時間。因此,這是個大問題。
現(xiàn)在,您的 Web 應用程序可能不需要處理這么多數(shù)據(jù),但是任何站點的處理時間都有可能超過客戶愿意等待的時間。一般來說,客戶愿意等待的時間是 200 毫秒,如果超過這個時間,客戶就會覺得過程 “緩慢”。這個數(shù)字基于桌面應用程序,而 Web 使我們更有耐心了。但無論如何,不應該讓客戶等待的時間超過幾秒。所以,要采用一些策略來處理 PHP 中的批處理作業(yè)。
分散的方式與 cron
在 UNIX® 機器上,執(zhí)行批處理的核心程序是 cron 守護進程。這個守護進程讀取一個配置文件,這個文件會告訴它要運行哪些命令行以及運行的頻率。然后,這個守護進程就按照配置執(zhí)行它們。在遇到錯誤時,它甚至能夠向指定的電子郵件地址發(fā)送錯誤輸出,從而幫助對問題進行調(diào)試。
我知道一些工程師強烈主張使用線程技術?!熬€程!線程才是進行后臺處理的真正方法。cron 守護進程太過時了?!?
我不這么認為。
這兩種方法我都用過,我認為 cron 具備 “Keep It Simple, Stupid(KISS,簡單就是美)” 原則的優(yōu)點。它使后臺處理保持簡單。不需要編寫一直運行的多線程的作業(yè)處理應用程序(因此不會有內(nèi)存泄漏),而是由 cron 啟動一個簡單的批處理腳本。這個腳本判斷是否有作業(yè)要處理,執(zhí)行作業(yè),然后退出。不需要擔心內(nèi)存泄漏。也不需要擔心線程停止或陷入無限循環(huán)。
那么,cron 是如何工作的?這依賴于您所處的系統(tǒng)環(huán)境。我只討論老式簡單的 cron 的 UNIX 命令行版本,您可以向系統(tǒng)管理員咨詢?nèi)绾卧谧约旱?Web 應用程序中實現(xiàn)它。
下面是一個簡單的 cron 配置,它在每天晚上 11 點運行一個 PHP 腳本:
0 23 * * * jack /usr/bin/php /users/home/jack/myscript.php




前 5 個字段定義應該啟動腳本的時間。然后是應該用來運行這個腳本的用戶名。其余的命令是要執(zhí)行的命令行。時間字段分別是分、小時、月中的日、月和周中的日。下面是幾個示例。
命令:
15 * * * * jack /usr/bin/php /users/home/jack/myscript.php

在每個小時的第 15 分鐘運行腳本。
命令:
15,45 * * * * jack /usr/bin/php /users/home/jack/myscript.php

在每個小時的第 15 和第 45 分鐘運行腳本。
命令:
*/1 3-23 * * * jack /usr/bin/php /users/home/jack/myscript.php

在早上 3 點到晚上 11 點之間的每分鐘運行腳本。
命令
30 23 * * 6 jack /usr/bin/php /users/home/jack/myscript.php

在每星期六的晚上 11:30 運行腳本(星期六由 6 指定)。
可以看到,組合的數(shù)量是無限的??梢愿鶕?jù)需要控制運行腳本的時間。還可以指定多個要運行的腳本,這樣的話,一些腳本可以每分鐘都運行,而其他腳本(比如備份腳本)可以每天只運行一次。
為了指定將報告的錯誤發(fā)送到哪個電子郵件地址,可以使用 MAILTO 指令,如下所示:
MAILTO=jherr@pobox.com
注意:對于 Microsoft® Windows® 用戶,有一個等效的 Scheduled Tasks 系統(tǒng)可以用來定期啟動命令行進程(比如 PHP 腳本)。

相關文章

  • php繪制一條直線的方法

    php繪制一條直線的方法

    這篇文章主要介紹了php繪制一條直線的方法,主要涉及GD庫中imageline方法的使用技巧,需要的朋友可以參考下
    2015-01-01
  • php開啟openssl的方法

    php開啟openssl的方法

    今天調(diào)試程序的時候提示,請開啟openssl,原來大多數(shù)情況下openssl是沒有開啟的,要想啟用需要進行下簡單的設置
    2014-05-05
  • PHP抽象類與接口的區(qū)別詳解

    PHP抽象類與接口的區(qū)別詳解

    今天小編就為大家分享一篇關于PHP抽象類與接口的區(qū)別詳解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • PHP使用遞歸算法無限遍歷數(shù)組示例

    PHP使用遞歸算法無限遍歷數(shù)組示例

    這篇文章主要介紹了PHP使用遞歸算法無限遍歷數(shù)組,結合實例形式分析了php針對一維數(shù)組、二維數(shù)組及多維不規(guī)則數(shù)組的通用遍歷技巧,需要的朋友可以參考下
    2017-01-01
  • PHP的Yii框架的常用日志操作總結

    PHP的Yii框架的常用日志操作總結

    這篇文章主要介紹了PHP的Yii框架的常用日志操作總結,包括消息的過略和格式化等基本內(nèi)容,需要的朋友可以參考下
    2015-12-12
  • PHP基于數(shù)組實現(xiàn)的分頁函數(shù)實例

    PHP基于數(shù)組實現(xiàn)的分頁函數(shù)實例

    這篇文章主要介紹了PHP基于數(shù)組實現(xiàn)的分頁函數(shù)實例,是非常實用的一個技巧,需要的朋友可以參考下
    2014-08-08
  • PHP正則匹配到2個字符串之間的內(nèi)容方法

    PHP正則匹配到2個字符串之間的內(nèi)容方法

    今天小編就為大家分享一篇PHP正則匹配到2個字符串之間的內(nèi)容方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • PHP調(diào)試函數(shù)和日志記錄函數(shù)分享

    PHP調(diào)試函數(shù)和日志記錄函數(shù)分享

    這篇文章主要介紹了PHP調(diào)試函數(shù)和日志記錄函數(shù)分享,本文分享的函數(shù)都是自己項目中使用的,需要的朋友可以參考下
    2015-01-01
  • 對php 判斷http還是https,以及獲得當前url的方法詳解

    對php 判斷http還是https,以及獲得當前url的方法詳解

    今天小編就為大家分享一篇對php 判斷http還是https,以及獲得當前url的方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • php防止惡意刷新與刷票的方法

    php防止惡意刷新與刷票的方法

    這篇文章主要介紹了php防止惡意刷新與刷票的方法,實例匯總了常用的cookie方法、session方法及文本數(shù)據(jù)方法等,具有不錯的實用價值,需要的朋友可以參考下
    2014-11-11

最新評論