1
我有一套數據庫文檔(幾千),我想運行一些數據遷移活動。這些文檔中的每一個都包含對Windows文件系統中不同文件的引用。這些文件存儲在通過共享文件夾訪問的文件服務器中。我想要做的是將文件移動到文件系統中的不同位置,根據文檔中的屬性重新排列文件。Akka是否根據可用資源來規範演員?
我已經想好了以下設計:
- 有一個演員,查詢數據庫和滋生每個文檔一個演員
- 每個參與者將負責複製其相關 文件,其新的位置和,處理任何異常
- 當這些參與者完成其任務,它會通知結果的 中心演員(成功/失敗)
這是一個天真的設計?我應該扼制創建了多少演員,還是Akka基於處理器可用性來調節分配的資源?在文件系統方面是否存在任何問題,同時有太多請求處於活動狀態?
offtopic:我想在這個特殊的情況下,你將得到更好的去與並行收集。 –
@ om-nom-nom:有趣。你的意思是擁有一個帶有(sourcePath,destinationPath)元素的集合,然後用一個基於複製操作結果返回成功/失敗的函數映射它? – Eduardo
是的,或多或少:'val xs = Seq(src - > dst,...); xs.par.map {Try(...)}'+ [parallelism hint](http://stackoverflow.com/q/14207762/298389) - 應該比部分演員更簡單 –