說實話,我還沒有看到一個現成的解決方案,但是這就是爲什麼我們程序員存在:創建一個解決方案,如果一個不容易availble的:-)
的方式我會這與你描述的類似:使用線程 - 如果這是一個web應用程序,那麼ajax是你的朋友,速度和可用性,對於桌面應用程序gui表示甚至不是問題。
這聽起來像你不能確定或猜測哪個來源是最好的可靠性,速度&結果數量。所以你需要設置你的程序,以便它確定最佳結果。假設您有10個數據源,並且有10個線程。當你啓動你的線程時 - 等待第一個返回的結果> 0.這將是你的「主」結果。當其他線程返回時,您可以將它們與您的「主」結果進行比較並添加新結果。如果你想提供獨特的結果,真的沒有辦法避免這種情況。只要你有第一個線程,你就可以開始顯示結果。您不必立即更新您的屏幕,並在所有新結果進入時立即更新,但如果需要一些時間,用戶可能會變得激動不安。如果您的實例超過10個,您可以擁有某種指標,顯示更多結果可用。
如果您只有幾個來源,比如10,並且您將每個來源的結果數量限制爲10,那麼實際上不應該花費太多時間在任何編程語言中對它們進行排序。如果您的遠程資源不可用,請確保您可以恢復。如果讓我們說,您正在等待所有10個來源再次顯示數據 - 如果其中一個來源停止,您可能會等待很長時間。
另一種方法是給用戶。有點像飛機票搜索網站 - 它們讓你在收集和分類結果時需要幾秒鐘的時間。我真的很喜歡Kayak.com的實施 - 因爲它讓我覺得它不像其他網站那樣做。
希望有所幫助。