<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. php語言

    PHP中cron的批處理

    時間:2025-03-17 06:42:37 php語言 我要投稿
    • 相關推薦

    PHP中cron的批處理

      如果 Web 應用程序中的一個特性需要超過 1 秒或 2 秒才能完成,那么應該怎么辦?需要某種離線處理解決方案。學習幾種對 PHP 應用程序中長時間運行的作業進行離線服務的方法。就跟隨百分網小編一起去了解下吧,想了解更多相關信息請持續關注我們應屆畢業生考試網!‘

      大型的連鎖店有一個大問題。每天,在每家商店會發生數千次交易。公司執行官希望對這些數據進行挖掘。哪些產品賣得好?哪些不好?有機產品在哪里賣得好?冰淇淋的銷售情況怎么樣?

      為了捕捉這些數據,組織必須將所有事務性數據裝載進一個數據模型,以便更適合生成公司所需的報告類型。但是,這很花費時間,而且隨著連鎖規模的增長,處理一天的數據可能要花費一天以上的時間。因此,這是個大問題。

      現在,您的 Web 應用程序可能不需要處理這么多數據,但是任何站點的處理時間都有可能超過客戶愿意等待的時間。一般來說,客戶愿意等待的時間是 200 毫秒,如果超過這個時間,客戶就會覺得過程 “緩慢”。這個數字基于桌面應用程序,而 Web 使我們更有耐心了。但無論如何,不應該讓客戶等待的時間超過幾秒。所以,要采用一些策略來處理 PHP 中的批處理作業。

      分散的方式與 cron

      在 UNIX? 機器上,執行批處理的核心程序是 cron 守護進程。這個守護進程讀取一個配置文件,這個文件會告訴它要運行哪些命令行以及運行的頻率。然后,這個守護進程就按照配置執行它們。在遇到錯誤時,它甚至能夠向指定的電子郵件地址發送錯誤輸出,從而幫助對問題進行調試。

      我知道一些工程師強烈主張使用線程技術。“線程!線程才是進行后臺處理的真正方法。cron 守護進程太過時了。”

      我不這么認為。

      這兩種方法我都用過,我認為 cron 具備 “Keep It Simple, Stupid(KISS,簡單就是美)” 原則的優點。它使后臺處理保持簡單。不需要編寫一直運行的多線程的作業處理應用程序(因此不會有內存泄漏),而是由 cron 啟動一個簡單的批處理腳本。這個腳本判斷是否有作業要處理,執行作業,然后退出。不需要擔心內存泄漏。也不需要擔心線程停止或陷入無限循環。

      那么,cron 是如何工作的?這依賴于您所處的系統環境。我只討論老式簡單的 cron 的 UNIX 命令行版本,您可以向系統管理員咨詢如何在自己的 Web 應用程序中實現它。

      下面是一個簡單的 cron 配置,它在每天晚上 11 點運行一個 PHP 腳本:

      0 23 * * * jack /usr/bin/php /users/home/jack/myscript.php

      前 5 個字段定義應該啟動腳本的時間。然后是應該用來運行這個腳本的用戶名。其余的命令是要執行的命令行。時間字段分別是分、小時、月中的日、月和周中的日。下面是幾個示例。

      命令:

      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 指定)。

      可以看到,組合的數量是無限的。可以根據需要控制運行腳本的時間。還可以指定多個要運行的腳本,這樣的話,一些腳本可以每分鐘都運行,而其他腳本(比如備份腳本)可以每天只運行一次。

      為了指定將報告的錯誤發送到哪個電子郵件地址,可以使用 MAILTO 指令,如下所示:

      MAILTO=jherr@pobox.com

      注意:對于 Microsoft? Windows? 用戶,有一個等效的 Scheduled Tasks 系統可以用來定期啟動命令行進程。

    【PHP中cron的批處理】相關文章:

    Photoshop中的動作和批處理08-22

    在excel中如何進行批處理08-11

    PS中動作和批處理的應用技巧11-06

    PHP中的Trait09-29

    PHP中php://input和$-POST的區別08-26

    PHP中的表單處理09-19

    Session在PHP中的使用07-24

    PHP中list的方法07-05

    PHP中Json應用09-05

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人