2009-05-29 66 views
1

我們的房地產網站發送電子郵件通知,當屬性上市時匹配用戶保存的搜索條件。PHP/Cronjob保存的搜索可擴展性

我有一個PHP腳本在cronjob上運行來處理搜索。

該系統現在有超過40,000個用戶。我遇到了一個我耗盡了PHP內存大小的問題。隨着系統的增長,我可以繼續增加php.ini中的內存大小,但希望找到一個更強大的方法來做到這一點。

有沒有一種更具擴展性的方法來實現這個目標?我應該用更強大的語言來構建一些東西嗎?也許是Java或Python中的線程化應用程序?

+0

爲什麼這是一個記憶的問題?我可以看到你會遇到性能問題,但是運行循環40.000次不應該導致PHP達到其內存限制。 – n3rd 2009-05-29 14:37:41

+0

這是PHP的垃圾收集器:P – 2009-05-29 14:38:53

回答

1

在保存的搜索表中使用一些標識符按專用於它的計算機的數量分區任務

劃分和征服通過挖掘部分搜索重構到許多機器,每個機器運行一些任務分區。

每個腳本可以做

SELECT * FROM saved_search_tbl WHERE ssid IN CALCRANGE(searchid, node_id) 

哪裏INRANGE是基於工作的數量和機器的節點數量的一些分割的邏輯。當新的搜索進來時,您可以通過分配主要和次要計算節點,跨計算機發送負載均衡

一些想法,希望他們幫助!

好運