我在一個節點上創建一個文件流,我擔心文件訪問,如果我從另一個節點啓動流,該怎麼辦?從另一個節點開始流?
一樣,在節點A,我沒有啓動它創建流:
stream= File.stream!(path)
Agent.start(fn -> %{"stream" => stream} end, name: {:global, :my_stream})
然後,在節點B,我開始流:
stream= Agent.get({:global, :my_stream}, fn %{"stream" => stream } -> stream end)
Task.start_link(Stream, :run, [stream])
請問流中查找文件在預期的節點A上?或者它會在節點B上查找它(考慮節點B是流的啓動位置),因爲如果這樣做會失敗,因爲文件實際上存在於節點A上。
我應該關聯哪個節點該文件存儲?我會怎麼做?我一定要嗎?
有什麼想法?
這是什麼路徑?如果是文件,則必須從兩個節點同樣可見。這在遠程節點上不一定是正確的。 – GavinBrelstaff
'path'是文件(包括路徑),我有每個節點都在一個單獨的服務器上,所以,你認爲我的方法不安全嗎?或者至少,不保證工作? – simo
根據我在網絡連接節點上使用'File.stream'的經驗,您需要每個erlang-VM上的文件的本地副本,其路徑名適用於每個文件系統/操作系統 - 否則它不會工作。 「文件」不是一個URL。 – GavinBrelstaff