簡體   English   中英

如何加速/分解多個部分的過程。 Rss,Curl,PHP

[英]How to speed up / break up process in multiple parts. Rss, Curl, PHP

我正在嘗試一些RSS閱讀器/提取器即時寫作。 除了一件事,一切都很順利。 這非常慢。

讓我解釋:

  1. 我從數據庫中獲取RSS源列表
  2. 我迭代此列表中的每個提要,使用cURL打開它並使用SimpleXMLElement進行解析
  3. 我使用給定的關鍵字檢查這些Feed的描述和標題,以查看它是否已存在於數據庫中。
  4. 如果它不是我將它添加到數據庫。

現在我循環瀏覽11個Feed。 這給了我一個18秒的頁面加載時間。 這是在不更新數據庫的情況下。 當找到一些新文章時,它最多可達22秒(在localhost上)。

在實時網絡服務器上,我的猜測是,這將更慢,並且可能超出了php設置的限制。

所以我的問題是,你有什么建議來提高速度..如果這是不可能的,最好的方法是將其分解為多次執行,比如一次說2個Feed? 我想保持全部自動化,不想在每2個Feed后點擊。

希望你們有一些好的建議給我!

如果你想要一些代碼示例讓我知道並且粘貼一些

謝謝!

我建議您使用cronjob或守護進程,通過運行php腳本自動將提要與數據庫同步。 這將從用戶的角度消除延遲。 像每小時或任何適合你的方式運行它。

雖然首先,您應該嘗試找出過程的哪些部分實際上很慢。 沒有代碼,很難說出什么可能是錯的。

可能的問題可能是:

  • 遠程服務器(存儲源)很慢
  • 您本地服務器的互聯網連接
  • 您服務器的硬件
  • 顯然代碼

以下是一些建議。

  • 首先,將數據提取和處理從顯示網頁分離到用戶。 您可以通過設置在CRON作業中執行或作為守護程序存在的腳本(即連續運行)來放置提取和處理部分。
  • 其次,您可以在Feed提取之間設置一些合理的時間限制,這樣您的腳本就不必每次都遍歷每個Feed。
  • 第三,您應該考慮使用Feed解析庫,如MagpieRSS,而不是SimpleXML。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM