簡體   English   中英

PHP 中的並行處理

[英]parallel processing in PHP

我有一長串單詞,我試圖僅將名詞打印到 output。 我試圖這樣做的方法是:

IF THE WORD IS A PROPER NOUN , JUST PRINT IT {
 // THIS IS DONE USING REGULAR EXPRESSION
}
ELSE{
 // GO TO ONLINE DICTIONARY http://www.thefreedictionary.com/WORD AND SEE IF CHECK IF THE WORD IS NOUN BY HAVING ANOTHER REGULAR EXPRESSION CHECKING FOR THE NOUN IN THE SOURCE CODE OF THIS PAGE
}

我已經對 else 部分進行了單元測試,它對單個單詞工作正常。 沒有 else 部分,程序打印 4000 多個單詞,但是當我集成 else 部分時,程序只打印大約 80 個單詞,這是錯誤的。

有人可以指出可能是什么問題嗎? 是否有一些並行的方式來處理這些對許多單詞的請求?

有人可以指出可能是什么問題嗎?

我認為這是因為對字典網站的 HTTP 請求需要時間。

是否有一些並行的方式來處理這些對許多單詞的請求?

您可以構建一個不匹配單詞的列表,然后稍后/並行處理它。 但這不是微不足道的。 您可以從使用 curl 庫或其他多請求組件一次發送多個 HTTP 請求開始。

此外,不要向一次只能回答一個單詞的網站發送請求,您可以詢問一個數據庫,該數據庫有很多並且您可以像這里建議的那樣將其放入系統從一長串單詞中提取名詞

你為什么不使用像/usr/share/dict/words這樣的字典文件?

為每個單元測試向服務器發出數千個請求,更不用說實時環境本身,很可能會讓你被禁止。

嘗試以其他方式執行此操作,例如使用 static 字典。 它更快、更高效且無風險。

當然,帶有一點正則表達式的 if 分支比網絡請求快得多。 所以我認為沒有“問題”,只是很慢。

在 PHP 中存在實現並行的本地方法,但這並不容易。 http://de.php.net/manual/en/ref.pcntl.php

另一種選擇是使用一些 exec 函數為每個網絡請求調用子腳本,而不是等待主腳本中的響應。 請參閱有沒有辦法在不等待命令完成的情況下使用 shell_exec?

暫無
暫無

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

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