2012-02-03 82 views
0

我有很大的導入,我需要爲每個條目創建一個圖像的縮略圖。問題是,當服務器不是最快的服務器時,對於每個條目,我需要1-2秒將其與數據庫中的縮略圖一起導入。這是一個20萬行巨大的時間。使用PHP創建圖像的縮略圖10-20同時並行與PHP

有沒有PHP中的任何庫,我可以開始例如創建10-20個縮略圖作爲線程,在同一時間平行,所以我可以增加導入10倍,我希望。

+0

我不認爲你會減少10個線程的時間。如果您在瀏覽器的幫助下完成這些導入,請將其更改爲命令行文件。速度將會增加。我曾經做過很大的進口,比如300.000個mysql記錄。始終使用命令行(Windows或Linux)。 – machineaddict 2012-02-03 10:07:03

回答

1

Php提供的功能爲pcnlt_fork(),但它們只能從CLI腳本中使用。沒有辦法讓你的web腳本平行。但是,您始終可以執行(例如)運行imagemagick resize ... &的bash腳本。但通常更好的方法是準備cronjob,它會在背景中生成縮略圖。

+0

當然,它會在CLI上,而不是一個webscript!我在這裏找到了這個http://www.wellho.net/resources/ex.php4?item=h999/oursites.php。有沒有人有這方面的經驗? – 2012-02-04 09:39:31

+0

我寧願運行10個並行的php腳本實例,而不是從php啓動多個腳本。 – Vyktor 2012-02-04 17:10:51

0

也許你應該考慮增加PHP內存限制。更多的內存可以使PHP更快地處理每個圖像。如果您同時使用PHP處理多個圖像,則它們很可能每個處理速度都會更慢,並且會以相同或更差的總體速度結束。

另外,你爲什麼要將圖像存儲在數據庫中?也許你應該將它們存儲在文件系統中,並在數據庫中存儲對其位置的引用。