我是一家主要製作工具的網絡營銷公司的程序員。這些工具有certian要求:如何處理海量數據集並提供實時用戶體驗
- 他們在瀏覽器中運行,必須在所有這些工作。
- 用戶要麼上傳某些東西(.csv)來處理它們,要麼提供一個URL並調用API來檢索關於它的信息。
- 他們正在移動數千行數據(認爲大型數據庫)。這些工具通常會在幾個小時內運行,通常會在夜間運行。
- 用戶必須能夠在處理他們的信息並向他們呈現時觀看直播。
目前我們正在寫PHP,MySQL和Ajax。
我的問題是如何處理大量的數據並在工具運行時提供用戶體驗。目前我使用自定義隊列系統發送ajax調用並將行插入表或數據到div中。
這種方法是在屁股巨大的痛苦,不可能是正確的方法。我應該使用模板系統還是有更好的方法來刷新大量數據的頁面塊。我的意思是很多數據,因爲我們已經接近最大化PHP內存,並且是我們一直在尋找的東西。
此外,我很想做到這些工具可以自己運行在服務器上。我的意思是上傳一個.csv並關閉瀏覽器窗口,然後在工具完成時發送一封電子郵件給用戶。
有沒有人有任何比使用.ajax調用更好的方法(編程標準)?謝謝。
我想更新一些筆記,因爲任何人都有同樣的問題。我期待到下面,看看哪個是最好的解決辦法:
- SlickGrid /數據表
- 的Gearman
- web套接字
- 棘輪
- Node.js的
這些都是沒有特別的順序,我選擇的將取決於我的問題是什麼,以及我的其他部門可以使用什麼。我會在選擇黃金框架時進行更新。
你應該看看網絡套接字。而不是一遍又一遍地發送所有的數據,只是發送新的數據。 – Rob
我曾經寫過類似的東西。你想要我的建議嗎?忘記PHP和JS。回到設計委員會,用C++編寫適當的應用程序。這是不值得的時間和精力 - 它永遠不會有效地工作,特別是如果你有複雜的對象之間的關係(數據行)。 – MarcinWolny
我正在運行一個包含2200個用戶和200多個表的數據庫。最大的數據集不到200萬條記錄,其中包括地理空間多邊形數據。我使用的是5年前的2GB雙核電腦。即使我計算跨北美郵政編碼的多邊形中心的相對距離,我也沒有看到任何類型的服務器滯後。當你說你正在運行幾個小時執行的進程,有時甚至是一夜之間,我擔心還有其他事情與你的數據集的大小沒有任何關係。你正在處理多少個數據集? – Strixy