[英]Process Multiple XML files at the same time in PHP
你好,我正在用 PHP 制作一個組件,它讀取原子文件並獲取進程的 xml 列表,我需要解析它們並將數據插入數據庫。
對於每種類型的 XML(新聞、比分、時間表),我都會做這樣的事情
問題是我的機器上有很多內存和內核,但列表不斷增長,待處理的待處理文件總是越來越大。
我想知道如何在處理 ram 和內核的同時處理 10 個文件,但是如果我在某個時間處理一個待處理的列表,則它總是會變大。
我感謝一些想法並為我的英語道歉
您將數據庫用作隊列。 這通常是不鼓勵的(有軟件可以做得更好),並且您在示例中遇到了一個典型的問題:
您獲得的進程狀態字段已初始化為值0
。 然后處理值為0
每個條目。 假設處理一個條目需要 10 分鍾。 然后每分鍾插入一個 URL。 所以你需要並行處理10個URL來應對插入率。 讓我們玩這個:
所以在第一分鍾你插入第一個 URL 並開始處理它。 由於 10 個處理器采用狀態為0
的第一個 URL,因此所有 10 個處理器都處理第一個 URL。
在第二分鍾,您插入第二個 URL,並且您仍然處理第一個 URL 的十倍。
在第三分鍾,您插入第三個 URL,並且您仍然處理第一個 URL 的十倍。
等等。 你得到了圖片。 狀態管理不善。 當您設計自己的隊列系統時,您需要注意它是否適用於並行需求。 您應該為此創建一個組件並使用假數據和日志對其進行徹底測試,以便您可以跟蹤和驗證它的操作。 然后將這樣的系統用於真實的事物。 它可能不會做你想做的一切,但它應該工作得更健壯。
或者,為已經創建的隊列獲取一個組件,已經過測試並且已經過工作證明。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.